基本クラス コンストラクターの呼び出し
Java で継承を使用する場合、super() を使用してスーパークラス コンストラクターを呼び出すことができます。これにより、同じ機能を C でどのように実現するかという問題が生じます。
具体的には、デフォルト以外のコンストラクターを使用して C の基本クラスから継承するときに問題が発生します。コンパイラは、適切なデフォルト コンストラクターがないことをよく警告します。
解決策: コンストラクターの初期化子リストを利用する
Java とは異なり、C には明示的な super() がありません。基本クラスのコンストラクターを呼び出すための構文。代わりに、派生クラスのコンストラクターの初期化子リストで呼び出しを指定します。初期化子リストはコンストラクターの本体の前に表示され、メンバー変数の初期化に使用されます。
たとえば、文字配列を引数として受け取るコンストラクターを持つ次の基本クラスを考えてみましょう。
class BaseClass { public: BaseClass(char *name); ... };
派生クラスで基本クラスのコンストラクターを呼び出すには、初期化子リストに呼び出しを含めます。
class Foo : public BaseClass { public: Foo() : BaseClass("asdf") {} };
これにより、基本クラスのコンストラクターは、他のメンバーの初期化が行われる前に呼び出されます。基本クラスのコンストラクターは引数を取るため、メンバー変数が初期化される前に初期化子リストでそれらを指定する必要があります。
以上がC で基本クラスのコンストラクターを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。