我在class中这样编码,带有公共修饰符:
static const string brands[] = {"Coca-Cola","Pepsi","Ruffles"};
它给了我这个错误代码:
E1591
如何解决这个问题?
据我所知,您不能为static const std::string []
设置类内初始化器。
应该在类声明之外初始化它。例如:
#include <string>
class Foo
{
public:
static const std::string brands[];
};
// in your Foo.cpp file
const std::string Foo::brands[] = {"Coca-Cola","Pepsi","Ruffles"};
c++的答案是跳过使用C数组,它在c++中有C中没有的限制,而是使用std::vector
:
static const std::vector<std::string> brands = {"Coca-Cola","Pepsi","Ruffles"};
注意,
std::
前缀应该以using namespace std
的形式出现,由于各种原因,最主要的是名称冲突,可能会产生很大的问题。前缀的存在是有原因的。