【发布时间】:2013-08-07 15:09:38
【问题描述】:
这段代码没有编译,错误信息是“undefined reference to `A::a'”:
代码 1:
#include <iostream>
using namespace std;
class A
{
public:
static const int a=0;
};
int main()
{
cout<<&A::a<<endl;
return 0;
}
但对于非常量静态成员,它会编译:
代码 2:
#include <iostream>
using namespace std;
class A
{
public:
static int a;
};
int A::a=0;
int main()
{
cout<<&A::a<<endl;
return 0;
}
有没有办法访问一个类的静态 const 成员的地址?如果有,怎么做?为什么代码 1 不能编译?
【问题讨论】:
-
令人讨厌的是,它似乎在 VS2012 上链接正常
-
@doctorlove 我的编译器是 Linux 上的 g++。
-
那时比我更懂事。我想知道为什么它在 VS 上可以正常链接。
标签: c++