gpt4 book ai didi

C++ - 初始化静态成员它自己的方法

转载 作者:行者123 更新时间:2023-11-28 04:41:52 25 4
gpt4 key购买 nike

是否可以使用自己的方法初始化静态成员,例如。初始化()?

例子:

class Foo
{
//some private variables
public:
static Bar example;
//some methods
}

然后在 main.cpp 中这样调用它:

Foo::example.initialize(argument);

当然不行。它还缺乏封装,因为变量是公共(public)的。我希望它是私有(private)的并且只初始化一次。除了用方法初始化它之外,我别无选择。

最佳答案

初始化对象的默认方式应该是通过它的默认构造器。

如果确实需要,则可以使用单例(请注意这是一个反模式:What is an anti-pattern?,还有 What is so bad about singletons?)

class Singleton
{
public:
static const Bar& getBarInstance()
{
static Bar bar;

return bar;
}
};

这只会被初始化一次。

关于C++ - 初始化静态成员它自己的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50024486/

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