我已阅读此文件 Initializing static array of strings (C++)?并尝试在我的编译器中测试是否一切正常这里是代码拷贝
#include <iostream>
#include <string>
using namespace std;
class MyClass {
public:
const static char* MyClass::enumText[];
};
const char* MyClass::enumText={"a","b","c","d"};
int main(){
std::cout<<MyClass::enumText[0]<<endl;
return 0;
}
但是这里有错误
1>c:\users\david\documents\visual studio 2010\projects\class_static\class_static.cpp(9): error C2372: 'enumText' : redefinition; different types of indirection
1> c:\users\david\documents\visual studio 2010\projects\class_static\class_static.cpp(7) : see declaration of 'enumText'
1>c:\users\david\documents\visual studio 2010\projects\class_static\class_static.cpp(9): error C2078: too many initializers
我正在使用 visual c++ 2010,为什么会出现这样的错误?请帮忙
最佳答案
应该是:
const char* MyClass::enumText[]={"a","b","c","d"};
// You forgot these ^^
关于c++ - 无法访问类中的常量静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533655/