函数指针静态,构造函数
Function pointer static, constructor
在这段代码中,我们有静态类变量,我需要有人解释这里发生了什么以及如何使用它。它是一个静态类变量和一个函数,通过引用获取变量。
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的线程安全初始化。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- enable_if转换构造函数(静态强制转换,is_base_of)
- 在作为静态成员包含在另一个类中的类的构造函数中使用 cout
- C++构造函数和静态成员
- 静态 std::map instatiation 在类的方法中调用构造函数吗?
- 错误: 无效使用非静态数据成员"应用程序::应用程序构造函数"
- 未调用的初始化静态thread_local结构的构造函数和析构函数
- 了解类构造函数的静态强制转换
- 静态类属性,C++中的多个构造函数
- 函数指针静态,构造函数
- 学习C++并在早期示例中遇到错误(在非静态数据成员之前需要构造函数)
- 如何捕获源自静态分配对象的构造函数的异常?
- "非静态数据成员之前需要构造函数" - 我是否使用"boost::variant"
- uninit_member:非静态类成员字段 m_cJobState.bstatus 未在此构造函数中初始化,也不在其调
- uninit_member:非静态类成员m_wszParams未在此构造函数中初始化,也不在它C++中调用的任何函数中初
- 静态对象如何调用私有构造函数
- 在构造函数中初始化静态函数指针
- 如何在构造函数 c++ 中使用静态变量?
- 具有私有构造函数的类的静态成员
- 如何在构造函数的静态列表中添加对象