Pau*_* D. 14 c++ arrays string static initialization
我不能为我的生活弄清楚如何正确地做到这一点.我有一个类需要存储一些常量(与枚举类型中的值对应的文本) - 我在我的类中声明它(公开):
const static char* enumText[];
Run Code Online (Sandbox Code Playgroud)
我试图像这样初始化它:
const char* MyClass::enumText[] = { "A", "B", "C", "D", "E" };
Run Code Online (Sandbox Code Playgroud)
但是gcc给了我以下错误:
'const char*MyClass :: enumText []'不是'class MyClass'的静态成员
我究竟做错了什么?谢谢!
Dav*_*eas 15
此代码编译:
struct X {
static const char* enumtext[];
};
const char* X::enumtext[] = { "A", "B", "C" };
Run Code Online (Sandbox Code Playgroud)
检查您的代码并找出差异.我只能认为您没有在类中定义静态属性,您忘记包含标题或者您输入了错误的名称.
这与gcc版本4.0.1编译:
#include <iostream>
class MyClass {
public:
const static char* enumText[];
};
const char* MyClass::enumText[] = { "a", "b", "c" };
int main()
{
std::cout << MyClass::enumText[0] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
编译:
g++ -Wall -Wextra -pedantic s.cc -o s
Run Code Online (Sandbox Code Playgroud)
你确定MyClass::enumText
引用了正确的类吗?
归档时间: |
|
查看次数: |
43847 次 |
最近记录: |