如您所知,Qt Creator中的类是class.h和class.cpp文件的一部分。假设我们有两个类A(a.h,a.cpp)和B(b.h,b.cpp),并且B继承了A.如何在使用B的构造函数时使用A的构造函数?如何在Qt Creator中使用超类构造函数?
3
A
回答
5
A的构造函数时自动调用你构建一个B.
如果您需要将参数传递到A的构造函数有它正常工作,明确要求其在B的构造函数:
B::B()
:A(Blah)
{
}
这将是共同的,当A是的QObject,并且希望拥有的东西正确发生,你“会通过在B的构造函数父指针并传递到A的:
B::B(QObject* parent_)
:A(parent_)
{
}
这是无关Qt和是一个纯粹的C++概念。
2
您将有文件:
A.H:
#ifndef A_H
#define A_H
class A
{
public:
A();
};
#endif // A_H
a.cpp:
#include "a.h"
#include <QDebug>
A::A()
{
qDebug() << "A()";
}
b.h:
#ifndef B_H
#define B_H
#include "a.h"
class B : public A
{
public:
B();
};
#endif // B_H
b.cpp:
#include "b.h"
#include <QDebug>
B::B() : A()
{
qDebug() << "B()";
}
main.cpp中:
#include <QCoreApplication>
#include <QDebug>
#include "a.h"
#include "b.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
B ob;
return a.exec();
}
而且它会打印出:
A()
B()
相关问题
- 1. 使用超类的构造函数?
- 2. Qt Creator中促进了QWidget,用构造
- 3. Java:如何调用子类构造函数内的超类构造函数?
- 4. 范围S4类,如何使用超类的构造函数
- 5. 使用反射覆盖超类构造函数与基类构造函数
- 6. 在与超类构造函数不同的子类中定义构造函数?
- 7. 如何让Qt-Creator使用cygwin构建?
- 8. 调用多个超类构造函数
- 9. 如何在OOP中使用数组参数重写超类构造函数PHP
- 10. 如何在超类构造函数中使用子类的属性?
- 11. Scala:调用超类的构造函数
- 12. 超级类中的java构造函数
- 13. 超类的Java子类构造函数
- 14. 如何使用基类构造函数
- 15. 继承和使用超类的构造函数在javascript中
- 16. 在Qt Creator中调用函数?
- 17. 从子类构造函数调用超级构造函数是否在内存中创建超类的对象?
- 18. Qt Creator,调用函数
- 19. 在Android中使用类构造函数
- 20. 如何从子类调用超类构造函数?
- 21. 问题在子类构造函数中调用超类方法
- 22. 如何在构造函数(Qt GUI)之后运行类方法?
- 23. 我如何使用Javascript中的参数调用超类的构造函数?
- 24. C++:如何在QT Creator中使用SAPI?
- 25. 如何在Qt Creator中使用Windows SDK
- 26. 如何在Qt Creator中使用HIDAPI?
- 27. 如何在Qt Creator中使用TBB
- 28. 如何从C++中的模板基类的构造函数调用模板超类的构造函数?
- 29. 在构造函数中调用类成员的构造函数
- 30. 在构造函数中调用不同类的构造函数?