如何创建一个只能由自己的类调用的构造函数
How To Create a Constructor Which Can Only be Called by Its Own Class?
如何创建一个只能由自己的类调用的构造函数?因此,当我有一个类Foo
时,只有当它是从Foo
的静态成员调用时,才可以调用构造函数。
您可以使构造函数私有化:
class Foo
{
private:
Foo();
public:
static Foo* Create() { return new Foo(); }
}
并使用静态方法Create()
来创建该类的实例。
使构造函数为静态的主要原因可能是强制工厂、单例或类仅包含静态方法时创建对象。也就是说,一个典型的单例实现(为了简单起见,是单线程的):
class Singleton
{
private:
Singleton();
public:
static Foo& GetInstance() { static Foo Instance; return Instance; }
}
使构造函数私有:
class Foo
{
Foo();
public:
static void usesFooConstructor();
static Foo& makeInstance(); // only if you need a handle to an instance
};
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- 在这种情况下,工会成员会调用自己的析构函数吗
- 如何转换多次调用自己的递归算法?
- C :基类调用自己的虚拟函数 - 一个反图案
- 类中的枚举在调用自己的函数时不会改变
- 进行异步调用 - 我必须创建自己的p/s吗?
- 是否可以阻止派生类调用自己的函数?(C++)
- C++抽象基类调用自己的纯虚函数会导致"Undefined reference"
- 在自己的模板类的构造函数中定义并调用模板函数
- 如何创建一个只能由自己的类调用的构造函数
- 为什么派生类调用基类运算符而不是它自己的运算符
- 如何从 dbx 的漂亮打印函数调用 dbx 自己的打印函数
- c++继承.对象调用超类方法而不是自己的方法
- 从其基类捕获的自己的异常类调用方法
- 如何在 C++ 中从类成员函数自己的定义递归调用该函数
- 我不知道如何调用自己的函数!C++
- 如何将对 ole32.dll 的调用重定向到我自己的代理 DLL
- 返回的结构调用它自己的析构函数,用于销毁分配的对象