这可能被视为一个风格问题。我有一个类,它保留对另一个类的实例的引用:
class A { };
class B {
A& ref;
public:
explicit B(A& ref) : A(ref) { }
};
我决定使用引用而不是指针,因为 ref 永远不可能是空指针。此外,代码看起来更好。
但是,用户不知道我是否复制了 A 对吗?在这种情况下,我不复制,所以如果 A 在 B 的实例仍然存在的情况下被销毁,就会出现问题。如果您使用指针,那么当然会发生同样的情况,但我觉得用户在编写代码时会意识到没有进行复制。
对此有何看法?处理这个问题的最佳 C++ 方法是什么?
PS.:我想到的一个解决方案是制作一些东西以便保留一个指针,但是如果它指向的对象被销毁,那么首先制作一个副本。这并不难实现,但关键是:额外的麻烦是否值得,开销是否合理?这种自制的参考计数器真的是人们会做的吗?