[qml]
An abstract class cannot be instantiated.
추상 클래스를 인스턴스화 할 수 없습니다.
(추천) Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발 강의 - 입문편
배경 지식 (background)
추상 클래스 : 순수 가상 함수를 1개 이상 가지고 있는 클래스
순수 가상 함수 : 가상 함수 중에 구현부(중괄호 내부)를 정의하지 않은 "virtual 함수명() =0;" 형태의 함수
(Abstract class: A class with one or more pure virtual functions.
Pure virtual function: "virtual function name () = 0;" in which no implementation part (inside braces) is defined among virtual functions function of the form)
문제 상황 (problem situation)
이러한 추상 클래스를 Q_DECLARE_METATYPE 및 qregistermetatype 를 사용하여 MetaType 시스템에 등록할 경우, "추상 클래스를 인스턴스화 할 수 없습니다" 라는 에러 메시지가 표시된다.
(If these abstract classes are registered with the MetaType system using Q_DECLARE_METATYPE and qregistermetatype , the error message "Cannot instantiate abstract class" is displayed.)
해결 방법 (Resolution)
이 경우에는 순수 가상 함수를 해제해야한다.
"=0;"를 제거하고 중괄호 내부를 비운 형태의 가상 함수의 형태로 선언해야한다. ("virtual 함수명() {}" 형태)
(In this case, you need to free the pure virtual function.
Remove "=0;" and declare it in the form of a virtual function with the inside of the curly braces empty. (“virtual function name() {}” form))
(추천) Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발 강의 - 입문편