ホームページ >バックエンド開発 >C++ >メンバー初期化リストは C コンストラクターと継承でどのように機能しますか?

メンバー初期化リストは C コンストラクターと継承でどのように機能しますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-27 20:04:14957ブラウズ

How Do Member Initialization Lists Work in C   Constructors and Inheritance?

コンストラクターのメンバー初期化リスト

C では、コンストラクターはメンバー初期化リストを使用してデータ メンバーを初期化できます。このリストは、コンストラクター名の後にコロン (:) で区切って表示されます。

継承とメンバー初期化リスト

メンバー初期化リストは、base の呼び出しにも使用できます。クラスコンストラクター。提供されたコード: newdemo のコンストラクター内の

class demo 
{
public:
    demo(unsigned char le = 5, unsigned char default) : len(le) 
    { 
        ...
    }
};
class newdemo : public demo 
{
public:
    newdemo(void) : demo(0, 0)
    {
        ...
    }
};

demo(0, 0) は、引数 0 と 0 を使用して基本クラスのデモのコンストラクターを呼び出し、len メンバーを初期化します。

メンバー初期化リストの一般的な使用法

継承外のメンバー初期化リスト許可されます:

コンストラクター本体の前のデータ メンバーの初期化:

const ではないメンバーは、コンストラクター本体が実行される前に初期化リストで初期化できます。これにより、コンストラクターのフローに関係なくメンバーが確実に初期化されます。

Const データ メンバーの初期化:

Const データ メンバーは、宣言内またはメンバーの初期化list.

例:

class MyClass
{
public:
    MyClass(int value) : value(value) // Initialize const member in initialization list
    { 
        ...
    }
private:
    const int value;
};

以上がメンバー初期化リストは C コンストラクターと継承でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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