我对以下代码有疑问:
class MyClass : private boost::noncopyable
{
public:
MyClass() {}
virtual ~MyClass() {}
}
class OtherClass : private boost::noncopyable
{
private:
MyClass* m_pMyClass;
}
我的想法是 MyClass 不能使用构造或赋值来复制。如果我想支持从我不想支持的 MyClass 派生类,则需要使用虚拟析构函数。我不打算创建指向此类的指针并传递它们。
我不想要一个单例,我看不出删除虚拟析构函数的不利之处。
如果删除不可复制类的虚拟析构函数,是否会引入潜在问题?是否有更好的做法来处理不需要是单例的类,但我只想要另一个类中的一个实例而不支持继承?