ホームページ > バックエンド開発 > C++ > 派生クラスのコンストラクターで基本クラスのメンバー変数を正しく初期化するにはどうすればよいですか?

派生クラスのコンストラクターで基本クラスのメンバー変数を正しく初期化するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-05 01:14:10
オリジナル
685 人が閲覧しました

How to Correctly Initialize Base Class Member Variables in a Derived Class Constructor?

派生クラス コンストラクターで基本クラスのメンバー変数を初期化する方法

オブジェクト指向プログラミングでは、以下を継承する派生クラスが存在するのが一般的です。基本クラス。派生クラスでコンストラクターを作成する場合、基本クラスから継承したメンバー変数を適切に初期化することが重要です。

次のコードを考えてみましょう:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート