class a{
public:
int b;
static int c;
virtual void mod() const
{
c=4;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
a bi;
return 0;
}
ルックは...のVisual Studio C++ 2010コンパイラを使用して、それをコンパイルした後、私は...C++のConstプロシージャ、Visual Studio C++ 2010の異常なエラー?エラー LNK2001:未解決の外部シンボル 「パブリック:静的int型Aこの時
cpplearningconsole.objを取得します:: c "(?c @ a @ 2HA)
これはコンパイラのバグだと思う。 私にとって、本当の疑問はです。 modはconstであればc変数を変更できますか?
ありがとうございました。
これはコンパイラのバグではありません...静的メンバー 'c'を宣言しましたが、どこにも定義されていません。 – forsvarir
'mod'は' const'で 'c'の値を変更することができます。' c'は 'mod'が呼び出されるインスタンスのメンバではないため(静的なので)、インスタンスは変更されません。 – forsvarir
modはクラスで定義されているだけでなく、b、なぜnot cですか?この中のロジックはどこですか? – Aftershock