Const データ メンバーの初期化: 総合ガイド
はじめに:
初期化についてC の定数データ メンバーの数は複雑になる可能性があります。この記事は、一般的なエラーに対処し、プロセスの詳細な説明を提供することで、この側面を明確にすることを目的としています。
エラーが発生しました:
次のコード スニペットを考えてみましょう:
#include <iostream> using namespace std; class T1 { const int t = 100; public: T1() { cout << "T1 constructor: " << t << endl; } };
クラスコンストラクター内で const データメンバー t を初期化しようとすると、次のエラーが発生します発生場所:
test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static
エラーの理解:
このエラーは、クラス定義内で const データ メンバーの初期化を許可しない C 言語の制限に起因します。これは、const 変数には一意の定義が必要であり、複数の翻訳単位に含まれる場合は保証できないためです。
Const データ メンバーを初期化する方法:
const を初期化するにはデータ メンバーの場合は、クラス定義の外で定義する必要があります。これは、クラス初期化子リストを通じて実現できます。
T1() : t(100) {}
初期化子リストでは、クラスの初期化が行われる前に t に値 100 が割り当てられます。これにより、オブジェクト作成時に const データ メンバーが確実に初期化されます。
結論:
const データ メンバーを初期化するには、特定の言語ルールに従う必要があります。これらをクラス定義の外で定義し、初期化子リストを使用することで、プログラマは const データ メンバーを効果的に初期化し、前述のエラーを回避できます。
以上がC で定数データ メンバーを適切に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。