1

これを確認したいだけです:

新しいメンバーを持たない派生クラスがある場合。基本クラスに既に長いコンストラクター (多くのパラメーター) がある場合、すべてのパラメーターを基本コンストラクターにスローするだけの派生クラスでのコンストラクターの作成は、やや退屈な (明らかに必要ではない) プロセスです。コンパイラに自動的に実行するように指示する方法はありますか? ないと思いますが、確認する必要がありました。このトピックについては何も見つかりませんでしたが、重複して申し訳ありません...

//私はIDEの自動生成機能には興味がありません(そのようなアドバイスも歓迎しますが)、ただのコンパイラ...

4

3 に答える 3

3

コンストラクターの継承を使用できます (C++11 以降で利用可能)

派生クラスの定義で、次のように記述します。

public:

  using base_class::base_class;

base_class は基本クラスです。

于 2013-08-02T17:37:44.157 に答える
0

基本コンストラクターでいくつかのパラメーターを初期化し、それらの値がコンストラクターに渡される場合、コンストラクターでsetX()値を初期化する代わりに関数を実装することで、C++11 を使用せずにこの問題を解決できます。

BaseClass::BaseClass(int arg1, int arg2, int arg3, ...) :
    _member1(arg1),
    _member2(arg2),
    _member3(arg3),
    ...
{}

次のように変更します。

BaseClass::BaseClass() :
    _member1(0),
    _member2(0),
    _member3(0),
    ...
{}

void BaseClass::setMember1(int value) { _member1 = value; }
于 2013-08-02T17:40:58.033 に答える