ホームページ  >  記事  >  バックエンド開発  >  C コンストラクターのコロン演算子 (「:」) の目的は何ですか?また、明示的なメンバー変数の代入との違いは何ですか?

C コンストラクターのコロン演算子 (「:」) の目的は何ですか?また、明示的なメンバー変数の代入との違いは何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-13 06:50:03265ブラウズ

What is the purpose of the colon operator (

C コンストラクターの初期化子リスト

提供された C コードで使用されるコロン演算子 (":") は、メンバー初期化子リストの一部です。 、これはコンストラクター内でクラスのメンバー変数を初期化する方法です。質問の提案に反して、これは明示的な個別の代入と同等ではありません。

この例では:

class MyClass {
public:

    MyClass() : m_classID(-1), m_userdata(0) { 
    }

    int m_classID;
    void *m_userdata;
};

コンストラクター MyClass() は、2 つのメンバー変数を初期化するデフォルトのコンストラクターです。 、m_classID と m_userdata をそれぞれ値 -1 と 0 に設定します。これは、コンストラクターのパラメーター リストに続き、コンストラクター本体に先行するメンバー初期化子リストを使用して行われます。

メンバー初期化子リストは、クラスで宣言された順序でクラス メンバー変数を初期化します。各初期化はカンマで区切られます。初期化子リストで指定された値は、コンストラクターが呼び出されるときに、対応するメンバー変数にすぐに割り当てられます。

対照的に、質問で示唆されているように、コンストラクター本体内で個別の代入を実行すると、明示的に変更されます。すでに初期化されている値。これは、メンバー初期化子リストによって実行される初期化とは異なります。

したがって、メンバー初期化子リストは、コンストラクター内でクラス メンバー変数を初期化する便利な方法を提供し、明示的な個別の代入とは異なります。

以上がC コンストラクターのコロン演算子 (「:」) の目的は何ですか?また、明示的なメンバー変数の代入との違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。