該問題與隨後提出的問題密切相關here.爲什麼不Visual Studio 2010調試器請參閱靜態常量類成員?
Stroustrup描述了定義類內常量的方法here。
當我按照Stroustrup的方法,我看到了預期的結果。但是,在Visual Studio 2010中,調試器無法解析類的範圍內的類成員。 這裏是我的意思是:
#include <iostream>
class Foo {
public:
static const int A = 50;
char arr[A];
void showA();
};
void Foo::showA() {
std::cout << "showA = " << A << "\n";
}
int main() {
Foo f;
f.showA();
}
當調試器是在昭和()「監視」窗口報告:
Error: Symbol "Foo::A" not found
我想強調的是程序沒有像預期的那樣,即輸出:
showA = 50
和程序返回0
能人否則用Visual Studio 2010重現這一點?這是調試器中的錯誤嗎?
請注意,您缺少「A」靜態數據成員的定義 – 2013-05-03 19:01:38
它是內聯的,對於OP的點 – 2013-05-03 19:04:27
是否啓用了優化?該類是否在命名空間內? – 2013-05-03 19:07:05