如何在不使用私有构造函数的情况下创建单例类?

How do I make a singleton class without using private constructor?

本文关键字:构造函数 情况下 创建 单例类      更新时间:2023-10-16

有没有办法使一个类的单例没有一个私有构造函数?
这样做的优点和缺点是什么?

在c++ 11中,您可以删除构造函数而不是将其设为私有。

struct Widget{
  Widget()=delete;
};

删除构造函数的优点:
指定一个已删除的构造函数来代替私有减速的优点是,当用户试图调用它时,它将创建一个更直观的错误消息。也可以说,它为那些阅读你代码的人提供了更好的意图。

私有构造函数的优点:
它将与该语言的旧标准兼容,并具有更广泛的编译器支持。

相关文章: