一个具有类内初始化器的成员必须是const

前端之家收集整理的这篇文章主要介绍了一个具有类内初始化器的成员必须是const前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的类中创建一个静态字符串:(在我的头文件中)
static string description = "foo";

但我收到这个错误

IntelliSense: a member with an in-class initializer must be const

如果我把它改为:

static const string description = "foo";

我得到这个错误

IntelliSense: a member of type "const std::string" cannot have an in-class initializer

我做错了什么?

解决方法

你可以做的是在标题中声明字符串,并在.cpp中初始化它.

在MyClass.h

#include <string>
class MyClass
{
  static std::string foo;
}

在MyClass.cpp

#include "MyClass.h"
std::string MyClass::foo = "bar"

猜你在找的C&C++相关文章