ホームページ > バックエンド開発 > C++ > C クラスで静的変数を適切に初期化するにはどうすればよいですか?

C クラスで静的変数を適切に初期化するにはどうすればよいですか?

DDD
リリース: 2024-12-05 13:12:11
オリジナル
936 人が閲覧しました

How to Properly Initialize Static Variables in C   Classes?

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

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