c++ - 无法访问类中的常量静态成员

标签 c++

我已阅读此文件 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/

相关文章:

将另一个 DLL 链接到项目后,C++ DLL 加载失败

c++ - find() 使用重载运算符==

c++ - ICMP 校验和错误

c++ - 在C++中,如何获取当前线程的调用堆栈?

c++ - 成员的返回类型中未定义模板占位符,仍然可以正常工作吗?

c++ - 在不同的 GPU 上初始化结构

c++ - Arduino:AT 命令——使用 Serial.read() 读取串行输出的最后一行

c++ - 删除 2D_array 错误

c++ - 双数组 Trie 问题

c++使基类在子类中使用重写方法