Noob の質問ですが、次のことを理解したいと思います。
マルチファイル プロジェクトがあるとします。プロジェクト内のすべてのファイル間で共有されるヘッダー ファイル内のクラスを指定しています。次の行に次のように記述します。static int test = 0;
static const int MAX = 4;
最初のものは、定義規則が 1 つであるため、コンパイルしようとするとエラーになります。しかし、2 番目のものはエラーなしでコンパイルされます。なんで?
私が理解していることから、どちらも同じプロパティを持っています。つまり、実行ストレージ全体の期間、クラスのスコープ、リンケージはありません。
何か助けはありますか?
編集: ヘッダー内の外部定数宣言のテスト:extern const int MAX = 4;
外部リンケージを強制すると、予想されるエラーが発生しました。したがって、変数ではエラーが発生し、定数ではエラーが発生しない理由がわかりません。