如何声明静态常量数组



我在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的形式出现,由于各种原因,最主要的是名称冲突,可能会产生很大的问题。前缀的存在是有原因的。

最新更新