ご存知かもしれませんが、Qt Creatorのクラスはclass.hおよびclass.cppファイルとしてプロジェクトの一部です。2 つのクラス A (ah、a.cpp) と B (bh、b.cpp) があり、B が A を継承すると仮定しましょう。B のコンストラクターを使用するときに、A のコンストラクターを使用するにはどうすればよいですか?
4466 次
2 に答える
5
A のコンストラクターは、B を構築するときに自動的に呼び出されます。
A のコンストラクターにパラメーターを渡して正しく機能させる必要がある場合は、B のコンストラクターで明示的に呼び出します。
B::B()
:A(Blah)
{
}
これは、A が QObject であり、所有権が正しく発生するようにしたい場合に一般的です。B のコンストラクターで親ポインターを渡し、それを A に渡します。
B::B(QObject* parent_)
:A(parent_)
{
}
これは Qt とは関係なく、純粋な C++ の概念です。
于 2012-12-10T04:26:23.900 に答える
1
あなたはファイルを持っているでしょう:
ああ:
#ifndef A_H
#define A_H
class A
{
public:
A();
};
#endif // A_H
a.cpp:
#include "a.h"
#include <QDebug>
A::A()
{
qDebug() << "A()";
}
bh:
#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()
于 2012-11-30T14:27:54.687 に答える