您好,我有一个包含大约 500 个字符串的数组。我类的多个函数使用这个变量。我显然不想在整个程序中多次初始化该数组。初始化一次并能够在整个类中使用它的最有效方法是什么?
这是我的意思的一个例子:
一些类.h:
class SomeClass {
public:
static const std::string large_list[];
private:
void someFunc();
void someFunc2();
void someFunc3();
}
一些类.cpp:
void SomeClass::someFunc1(){
static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
//do something with the large_list
}
void SomeClass::someFunc2(){
static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
//do something with the large_list
}
void SomeClass::someFunc3(){
static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
//do something with the large_list
}
谢谢。
最佳答案
您可以使用以下类内初始化(注意我没有使用 std::string
,因为它的构造函数不是 constexpr
):
class SomeClass {
public:
static constexpr const char* large_list[] = {"something", "somethingelse", "somethingelse1"};
};
关于C++大字符串初始化及使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726931/