函数指针静态,构造函数

Function pointer static, constructor

本文关键字:构造函数 静态 指针 函数      更新时间:2023-10-16

在这段代码中,我们有静态类变量,我需要有人解释这里发生了什么以及如何使用它。它是一个静态类变量和一个函数,通过引用获取变量。

class Constructor 
{
private:
static Constructor constructor;
public:
static Constructor* constructor();
};
Constructor Constructor::constructor;
Constructor* constructor::constructor()
{
return &constructor;
}

一旦您删除错误,它就会编译

class Constructor 
{
private:
static Constructor constructor_;
public:
static Constructor* constructor();
};
Constructor Constructor::constructor_;
Constructor* Constructor::constructor()
{
return &constructor_;
}

您最终会在静态变量Constructor::constructor_中获得Constructor的单个私有实例,该实例只能通过其静态公共Constructor::constructor()方法访问。这种只允许创建类的单个实例的构造类型称为singleton。它是这样使用的:

int main(){   
auto* s1 = Constructor::constructor();
auto* s2 = Constructor::constructor();
std::cout << (s1 == s2);
}

请参阅此处的工作版本。

有关其他信息,请参阅Singleton的线程安全初始化。