派生クラス コンストラクターで基本クラスのメンバー変数を初期化する方法
オブジェクト指向プログラミングでは、以下を継承する派生クラスが存在するのが一般的です。基本クラス。派生クラスでコンストラクターを作成する場合、基本クラスから継承したメンバー変数を適切に初期化することが重要です。
次のコードを考えてみましょう:
class A { public: int a, b; }; class B : public A { B() : A(), a(0), b(0) { } };
この例では、派生クラス B独自のコンストラクター内でメンバー変数 a と b を初期化しようとします。しかし、これは間違ったアプローチです。派生クラスで基本クラスのメンバー変数を初期化する正しい方法は、基本クラスのコンストラクターを使用することです。
class A { protected: A(int a, int b) : a(a), b(b) {} // Accessible to derived classes private: int a, b; // Keep these variables private in A }; class B : public A { public: B() : A(0, 0) // Calls A's constructor, initializing a and b in A to 0. { } };
基本クラスのコンストラクターをアクセス可能 (保護またはパブリック) にし、それを派生クラスのコンストラクターで呼び出すことによって、 、継承されたメンバー変数を適切に初期化します。このアプローチにより、派生クラスのコードが実行される前に、基底クラスが適切に初期化されることが保証されます。
基底クラスのメンバー変数を派生クラスでパブリックにすること (間違った例のように) は、カプセル化原理により、保護されたデータまたはプライベート データへの外部アクセスが可能になります。
以上が派生クラスのコンストラクターで基本クラスのメンバー変数を正しく初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。