2013-08-05 10 views
0

내 자신의 타입을 Qt MetaObject System (메타 타입 등록)에 추가해야합니다. 수동으로 인해, 다음 요구 사항이 충족되어야합니다 :Qt MOC : 기본 및 복사 생성자가 사용되는 경우?

  • 기본 생성자
  • 복사 생성자
  • 소멸자

기본 생성자와 감각이없는 내 클래스; QT MOS를 만족하기 위해서만 생성됩니다. 그러나 어떻게, 언제, 왜 Qt가 기본 ctor를 호출합니까? 클래스가 동적으로 생성 된 요소에 포인터를 저장하면 어떻게됩니까? MOS가 해당 클래스의 복사본을 만든 다음 삭제하고 모든 포인터를 비 웁니다.

답변

0

MOS가 이러한 클래스의 복사본을 만든 다음 모든 포인터를 삭제합니다.

예, 이벤트를 발표 할 때 먼저 이벤트가 발표됩니다. 하나의 스레드에서 다른 스레드로 이벤트를 보내는 것을 단순화하기 위해 이렇게하면됩니다.

클래스가 동적으로 생성 된 요소에 포인터를 저장하는 경우 MOS가 해당 클래스의 복사본을 만든 다음 삭제하고 모든 포인터를 비 웁니다.

사용자 정의 복사 생성자의 용도입니다. 그것은 모든 것이 잘 복사되었는지 확인하고 메모리 누수 (또는 다른 문제)가 발생하지 않도록하는 작업입니다.


마지막으로, 나는 그것이 말하는 곳을 발견했다. 이것은 this link에 있습니다.

선택적 유형 매개 변수는 설정할 연결 유형을 설명합니다. 특히, 특정 신호가 즉시 슬롯에 전달되는지 아니면 나중에 배달 대기 중인지를 결정합니다. 신호가 대기중인 경우, 매개 변수는 Qt의 메타 오브젝트 시스템에 알려진 유형이어야합니다. 왜냐하면 Qt는 장면 뒤에서 이벤트를 저장하기 위해 인수를 복사해야하기 때문입니다. 대기중인 연결을 사용하여 오류 메시지가 표시되면