在类内部,我想定义一些const字符串。但是当我使用
时,编译器报告错误class A {
static const std::string s = "test"
};
在课堂内。怎么做?我是否必须在类定义之外定义const?
答案 0 :(得分:4)
我认为你必须在外面定义它。
class A {
static const std::string s;
};
const std::string A::s("test");
答案 1 :(得分:0)
是的,它应该在类定义的一边定义。
const std::string A::s = "test" ;
在C++0x
中,类定义本身(result 1)允许初始化。但我不知道为什么std::string
类型不允许(result 2)。
啊......从错误信息来看,似乎只允许整数数据类型。
答案 2 :(得分:0)
您在类外部初始化静态成员(与C#不同,您可以在同一位置声明和初始化成员)。
class A {
static const std::string s;
};
// initialize your static members outside of the class definition.
const std::string A::s = "Some text here";