제목과 마찬가지로 QObject의 "this"포인터에 "q_ptr"포인터가 할당 된 이유는 무엇입니까? 소스 코드에서. 그런 다음QObject의 "this"포인터에 "q_ptr"포인터가 할당 된 이유는 무엇입니까?
QObject::QObject(QObjectPrivate &dd, QObject *parent)
: d_ptr(&dd)
{
>>Q_D(QObject);
>>d_ptr->q_ptr = this;/*question*/
.......
때 타격과 같은 소스 코드에서 사용 Q_Q()
매크로 :
Q_Q(QWidget)
이 함수 q_fun (처리 질문 포인터) 반환합니다 : 모든으로
QWidget*q_func() {return static_cast<QWidget*>(q_ptr);}
을 우리 부모로부터 자녀에게 전송할 때 static_cast
은 안전하지 않습니다.
나는 매우 /*question*/
에 대해 좌절하고있다. 어떤 사람이 나에게 비밀을 말 할 수 있는가? 고마워! 민간 구현 객체 (PIMPL idiom)이 그것 (비 개인 QObject
)과/근무하고있는 객체에 대해 이야기한다
시맨틱 노트 :'this'는'q_ptr'에 할당되어 있습니다. 'a = b;': b의 값은 a에 할당됩니다. 즉, b의 값을 취합니다. – tmpearce
hehe, 의견을 보내 주셔서 감사합니다. –