我有一个 A 类,它作为成员引用了 B 类的对象。B 类的复制构造函数(和赋值运算符)是私有的。你认为使用 A 的默认复制构造函数是一个有效且好主意吗?(我实际上想要一个功能,我可以在某种 STL 容器中存储大量 A 类型的对象,这需要分配能力和复制能力。)
class A
{
private:
B& b_;
public:
A(B& b) : b_(b){}
}
到目前为止,据我所知,对上述方法的反对意见如下,但我的设计并未面对它。我想知道上述示例是否还有其他问题/问题/疑虑...
- 只有引用被复制,因此当类型 B 的原始对象 b 被销毁时会出现问题。(不适用,因为 b 在整个范围内都可用。)
- b_ 对于 A 的每个实例都是唯一的吗?(不,B 实际上只在作用域中实例化一次,因此它具有单例类的效果。)
如果还有其他问题,请在此处列出。我不热衷于明确定义的复制构造函数,但我对此持开放态度。