如您所知,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. 在構造函數中調用不同類的構造函數?