3

ご存知かもしれませんが、Qt Creatorのクラスはclass.hおよびclass.cppファイルとしてプロジェクトの一部です。2 つのクラス A (ah、a.cpp) と B (bh、b.cpp) があり、B が A を継承すると仮定しましょう。B のコンストラクターを使用するときに、A のコンストラクターを使用するにはどうすればよいですか?

4

2 に答える 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 に答える