이유는 내가 C2248: 'QObject::QObject' : cannot access private member declared in class 'QObject'
인 이유를 이해합니다. 여기에 설명 된대로 Qt는 개체는 복사 가능한 없습니다 :"QObject '클래스에 선언 된 비공개 멤버에 액세스 할 수 없습니다."
문제 컴파일러 메시지는 항상 클래스의 (}
를 폐쇄) 마지막 줄을 나타내는 것이있다 :
class MyQObject : public QObject {
Q_OBJECT
....
}; <-- error line
근본 원인은 어딘가에 있습니다. 여기서 클래스는 복사됩니다 (다른 파일, 코드의 다른 행). 이것은 때로는 발견하기가 어렵습니다! 질문 :이 복제를 표시하기 전에 참고 : 오류
비에 대한 진짜 이유의 라인을 찾을 수있는 방법이 있나요. 질문은 근본 원인을 찾는 것이지 다른 질문과 같이 해결하는 것이 아닙니다.
--- 편집 1 ---
좋은 힌트 Kuba et.al. 그것은 복사 생성자가 생성되는 이유 2.8.0
'QObject::QObject'
C:\Qt\5.1.0-32\qtbase\include\QtCore/qobject.h(115) : see declaration of 'QObject'
This diagnostic occurred in the compiler generated function 'MyQObject ::MyQObject (const MyQObject &)'
가 궁금 Qt는 창조주에 컴파일, VS2010입니다. Qt의 DBus 지원 버전을 사용하고 있습니다. 이것이 이유일까요?
어떤 VS 버전입니까? Mine (VS2010)은 사용 라인에서 오류를보고 한 다음 보고서의 추가 행에 "QObject :: QObject의 선언을 봅니다 (QObject를 가리 킵니다)"라고 말합니다. – Angew
클래스 정의의 닫는 브리켓'}'다음에';'를 놓치지 않습니까? – vahancho
유머 저희와 함께 전체 오류 메시지와 함께 귀하의 Visual Studio 버전을 게시하십시오. VS IDE의 문제 목록은 원하는 것이 아닌 * 메시지를받는 위치에주의하십시오. 원시 컴파일러 출력에서 살펴보고 싶습니다. 적어도 Qt Creator에서는 문제를 클릭하면 문제 목록이 확장되어 어떤 일이 발생했는지에 대한 더 많은 정보를 얻을 수 있습니다. –