如何在c ++方法中定义const字符串

时间:2011-05-17 23:37:18

标签: c++

在类内部,我想定义一些const字符串。但是当我使用

时,编译器报告错误
class A {
static const std::string s = "test" 
};

在课堂内。怎么做?我是否必须在类定义之外定义const?

3 个答案:

答案 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";