gpt4 book ai didi

c++ - 如何在单例模式中初始化类成员?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:54 25 4
gpt4 key购买 nike

我有一个遵循单例方法的类,但是如果它的构造函数是私有(private)的,我应该在哪里初始化类成员?

class MyClass
{
MyClass() {}; //constructor is private
MyClass(const MyClass&);
MyClass& operator=(const MyClass&);
public:
static MyClass& Instance()
{
static MyClass singleton;
return singleton;
}
};

最佳答案

您可以照常在构造函数中初始化类成员,甚至是私有(private)的。

构造函数对于外界是私有(private)的不是静态成员函数Instance()。这意味着,Instance() 中的 static MyClass singleton 行实际上调用了默认构造函数,这是有效的,因为 Instance() 可以访问private 类(class)成员!

关于c++ - 如何在单例模式中初始化类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com