Visual Studio で奇妙なことに遭遇しました。
const
修飾された (つまり; で終わる)メンバー関数を配置する場合、その直後にアクセス指定子 (つまり; 、または)const
を配置することはできません。public
protected
private
// ...
int GetFour() { return 4; } const
private:
static ClassName * Instance;
Settings();
// ...
また、メンバー関数プロトタイプの順序を変更し、アクセス指定子の前に非 const メンバー関数を配置すると、すべてが修正されます (エラーなしでコンパイルおよび実行されます)。
// ...
int GetFour() { return 4; } const
int GetFive() { return 5; }
private:
static ClassName * Instance;
ClassName();
// ...
これが C++ のルールなのか、Visual Studio の単なるバグなのか、それとも私がしたことなのか知りたいですか?
(バージョン: Visual Studio Ultimate 2012 Update 3)