Qt에 대해 몇 가지 실험을하고 있습니다. 부모 클래스에서 자식 클래스의 Q_PROPERTY로 주석 된 모든 속성을 읽으려고합니다. 수업 내용은 다음과 같습니다.어떻게 부모 클래스가 그 자식 클래스의 속성을 볼 수 있습니까?
class ParentClass : public QObject
{
Q_OBJECT
Q_PROPERTY(ParentProperty...)
//class stuff...
}
class ChildClass : public ParentClass
{
Q_OBJECT
Q_PROPERTY(ChildProperty...)
//class stuff
}
부모 클래스의 모든 속성을 읽고 싶지만 부모 속성 만 읽을 수 있습니다. 어떻게 하위 클래스의 속성을 가져올 수 있습니까? 그것을위한 편안한 방법이 있습니까?
왜 필요하다고 생각하십니까? 부모 클래스는 하위 클래스에 대해 결코 알지 못하므로 클래스 디자인에 문제가 있다고 말할 수 있습니다. –
내 의도는 사용하기 쉬운 데이터베이스 입출력 시스템을 만드는 것이 었습니다. 따라서 사용자는 자신이 소유 한 클래스에 데이터베이스에 영구적으로 저장하려는 속성 (속성)을 정의해야합니다. 속성은 속성이 이미 정의 된 상위 클래스에서 상속됩니다. 부모 클래스는 자식의 모든 속성을 읽고 모든 속성을 가진 테이블을 특성으로 만들어야합니다. 나는 그것을 분리 할 수 있지만 사용자는 자신의 속성 클래스를 자신의 것으로 등록해야합니다. – Paul
사용자가 하위 클래스의 속성을 데이터베이스에 저장하지 않으려면 어떻게해야합니까? 또는 기본 클래스가 하위 클래스의 속성에 액세스한다는 사실조차 모르는 경우에는 어떻게해야합니까? 기본 클래스에 템플릿 메소드를 생성 한 다음 서브 클래스에서 호출해야합니다 :'registerProperty ("height", & m_height); 또는 프로그램이 작동하는 방식에 따라 유사합니다. 하지만 기본 규칙은 다음과 같습니다. ** 결코 ** 기본 클래스에서 하위 클래스에 액세스하십시오. 예외 없음. –