我知道如何防止 C++ 中类的动态实例化。 (定义我自己的"new"运算符)但是有没有一种简单的方法来防止静态实例化以便我强制使用动态实例?也就是说,我该怎么做...(这不是可派生的抽象基类。只是一个简单的类)
class B {
};
B b; // how do I prevent this without using friends or some derived class trick
B* b;
b = new B; // still want to be able to do this.
最佳答案
您可以通过将 c'tor 设为私有(private)来防止它:
class B {
B() {}
public:
static B* alloc() { return new B; }
};
代替 b = new B;
你会做:b = B::alloc();
关于c++ - 如何在允许动态实例的同时防止简单 C++ 类对象的静态实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752853/