this simple issueを解決した後、私は質問しなければなりませんでした:constとしての宣言が別の場所で実行される場合、定義時にconst指定子を繰り返さなければならないのはなぜですか?
- >クラスのHファイルでは、const staticメンバーが定義されています。 :
class ex {
const static int my_ex;
};
- > CPPで値をファイルは
ex::my_ex = 32;
を指定され、その後1は、エラー「競合の宣言」(同様に「タイプに名前を付けていません」)を取得します。私は、CPPファイル内定義もしかし、リンカから見た競合を作成し宣言であることを理解し、なぜのみ静的のconst指定子(およびタイプ)とではないでしょうか?私は書くだけで
const int ex::my_ex = 32;
コンパイルすることができます。しかし静的ではない...どうして?なぜ私はちょうどを定義することができませんを定義し、宣言関連手順(タイプ、特定の識別子)を繰り返しませんか?
'static'は決して定義に使用されません。 –
Ok ...しかし** **は本当に私の質問です... –
静的な宣言と静的な定義は異なることを意味します。 – SergeyA