希望有一个具有私有静态数据成员的类(包含所有字符a-z的向量)。在java或C#中,只需创建一个“静态构造函数”,在生成类的任何实例之前运行该构造函数,并设置该类的静态数据成员。
发布于 2018-01-09 08:51:27
要获得与静态构造函数等效的值,需要编写一个单独的普通类来保存静态数据
class StaticStuff
{
std::vector<char> letters_;
public:
StaticStuff()
{
for (char c = 'a'; c <= 'z'; c++)
letters_.push_back(c);
}
// provide some way to get at letters_
};
class Elsewhere
{
static StaticStuff staticStuff; // constructor runs once, single instance
};
发布于 2018-01-09 10:04:20
可以
class MyClass
{
public:
static vector<char> a;
static class _init
{
public:
_init() { for(char i='a'; i<='z'; i++) a.push_back(i); }
} _initializer;
};
in the .cpp:
vector<char> MyClass::a;
MyClass::_init MyClass::_initializer;
初始化将不会执行。
https://stackoverflow.com/questions/-100001335
复制相似问题