我有 3 节课:
class Being : public QObject {
Q_OBJECT
public:
explicit Being(QObject *parent = nullptr);
};
class Animal : public Being {
Q_OBJECT
public:
explicit Animal(QObject *parent = nullptr);
};
class Dog : public Animal {
Q_OBJECT
public:
explicit Dog(QObject *parent = nullptr);
};
存在的实现如下:
Being::Being(QObject *parent) : QObject(parent) {
qDebug() << staticMetaObject.className();
}
我有以下代码:
Being *pBeing = new Being();
Being *pAnimal = new Animal();
Being *pDog = new Dog();
问题是:有没有办法实现Being的构造函数,以便我可以访问指向我的Being基类的实际实例,以便上述代码的日志为:
Being
Animal
Dog
?
编辑:
我的意图是我希望能够拥有一个Animal.txt
,Being.txt
并将Doc.txt
在 Being 基类中处理。而且我需要知道,根据实例的类型,我是否需要 parseAnimal.txt
或Being.txt
获取Doc.txt
更多信息。
Qt 支持这个吗?有没有一种机制我可以使用 C++/Qt 来实现这一点?如果没有,是否有任何优雅的妥协解决方案?