c++ - 静态常量字符串数组,如何使用

标签 c++ class static constants

<分区>

如何初始化和使用静态常量字符串数组?我做了一个例子,header:

const static string validFileTypesToSendToClient[];

实现:

const string Settings::validFileTypesToSendToClient[] = {"html","css","js"};

这行得通,但我该如何使用它呢?例如在这种情况下:

string fileTypesToAllow[] = Settings::validFileTypesToSendToClient;

我得到错误:

Initialization with ‘{…}’ expected for aggregate object.

那么,我怎样才能以正确的方式使用字符串的静态常量数组呢?我已经找到了这个:Initializing a static const array of const strings in C++但他们没有描述如何使用它。

最佳答案

C++ 中不存在内置数组赋值。但是,您可以这样做:

#include <array>
#include <string>

std::array<std::string, 3> string_array = 
{
  "foo", 
  "bar", 
  "baz", 
};

int main()
{
  std::array<std::string, 3> second_string_array = string_array;
}

它是 C++11,但现在几乎所有编译器都支持它。 (顺便说一句,为什么你首先要复制这样一个数组似乎很值得怀疑。另外,这是我考虑使用 const char* 的情况之一,即使你肯定会忘记那个赋值。)

关于c++ - 静态常量字符串数组,如何使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14090065/

上一篇:c++ - 散列溢出

下一篇:C++ 缩放图形内容

相关文章:

c++ - 等待线程直到另一个线程结束 C++ linux OS

c++ - Qt 模型/ View 使用模型项 : is specific view item required?

javascript - 使用 JavaScript 将 HTMLCollection 转换为数组

c# - 通过对象变量将类方法的使用转换为 C# 代码

c - 在 C 中声明我的 int 数组

具有未定义行为的 C++ 代码,编译器生成 std​​::exception

C++ 友元运算符重载不编译

c++ - 直方图均衡不适用于彩色图像 - OpenCV

java - 我怎么知道给定包的类

c - 静态函数的外部声明是否会破坏内部链接?