C クラスでの静的変数の初期化
オブジェクト指向プログラミングでは、多くの場合、クラス内で静的変数を初期化する必要があります。ただし、この方法では、次の質問に例示されるように、課題が生じる可能性があります。
ジレンマ:
開発者は、オブジェクト アクセスを必要としないクラス内の関数をいくつか特定しました。静的としてマークされています。ただし、コンパイラは、アクセスされるすべての変数も静的として宣言することを要求します。その後、開発者はこれらの変数をクラス内で静的 const として宣言しますが、コンパイル エラーが発生します。
解決策:
クラス内で静的変数を初期化するには、クラス宣言内で静的変数を定義する必要があります。ただし、別のソース ファイルで初期化します。これを以下に示します:
// Class Header class Thing { public: static string RE_ANY; static string RE_ANY_RELUCTANT; }; // Source File string Thing::RE_ANY = "([^\n]*)"; string Thing::RE_ANY_RELUCTANT = "([^\n]*?)";
代替考慮事項:
関数を静的にすると、関数はオブジェクトに関連付けられなくなり、非静的メンバーにアクセスできなくなることに注意することが重要です。 。代わりに、それらを const としてマークすることを検討してください。これにより、メンバーの変更は禁止されますが、メンバーへのアクセスは許可されます。
以上がC クラスで静的変数を適切に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。