首页 >后端开发 >C++ >如何在没有静态构造函数的情况下在 C 中初始化私有静态数据成员?

如何在没有静态构造函数的情况下在 C 中初始化私有静态数据成员?

Patricia Arquette
Patricia Arquette原创
2024-11-10 18:06:02461浏览

How to Initialize Private Static Data Members in C   Without Static Constructors?

私有静态数据成员的初始化:静态构造函数的替代方法

在类中经常会遇到对私有静态数据成员的需求,类似于Java或C#中静态构造函数的概念。然而,C 并没有为静态构造函数提供显式机制。

为了解决这个问题,C 提供了一种替代方法。不要在类中声明静态数据成员,而是创建一个单独的普通类来保存静态数据。在所需的类中声明这个普通类的静态实例。

例如:

class StaticStuff
{
    std::vector<char> letters_;

public:
    StaticStuff()
    {
        for (char c = 'a'; c <= 'z'; c++)
            letters_.push_back(c);
    }

    // Provide a method to access letters_
};

class Elsewhere
{
    static StaticStuff staticStuff; // Static instance runs once
};

通过使用这种技术,静态数据在程序执行期间初始化一次并可以访问整个程序的生命周期。这种方法可以作为 C 中静态构造函数的可行替代方案。

以上是如何在没有静态构造函数的情况下在 C 中初始化私有静态数据成员?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn