首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C++中的静态构造函数?

C++中的静态构造函数?
EN

Stack Overflow用户
提问于 2018-01-09 00:23:40
回答 2查看 0关注 0票数 0

希望有一个具有私有静态数据成员的类(包含所有字符a-z的向量)。在java或C#中,只需创建一个“静态构造函数”,在生成类的任何实例之前运行该构造函数,并设置该类的静态数据成员。

EN

回答 2

Stack Overflow用户

发布于 2018-01-09 08:51:27

要获得与静态构造函数等效的值,需要编写一个单独的普通类来保存静态数据

代码语言:javascript
复制
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

};
票数 0
EN

Stack Overflow用户

发布于 2018-01-09 10:04:20

可以

代码语言:javascript
复制
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:

代码语言:javascript
复制
vector<char> MyClass::a;
MyClass::_init MyClass::_initializer;

初始化将不会执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档