これはスタイルの問題と見なされるかもしれません。別のクラスのインスタンスへの参照を保持するクラスがあります。
class A { };
class B {
A& ref;
public:
explicit B(A& ref) : A(ref) { }
};
ref が null ポインターになることはあり得ないため、ポインターの代わりに参照を使用することにしました。また、コードの見栄えも良くなります。
しかし、ユーザーは私が A をコピーしたかどうかわかりませんよね?この場合、コピーはしないので、B のインスタンスがまだ存在しているときに A が破棄されると、問題が発生します。ポインターを使用すると、もちろん同じことが起こりますが、ユーザーはコードを書いているときに、コピーが行われていないことに気付いていると思います。
これについての意見は?この問題に対処する最善の C++ の方法は何でしょうか?
PS .: 私が考えた 1 つの解決策は、ポインターが保持されるようにすることですが、ポインターが指すオブジェクトが破棄された場合は、最初にコピーが作成されます。これを実装するのはそれほど難しくありませんが、要点は次のとおりです。余分なトラブルはそれだけの価値があり、オーバーヘッドはそれを正当化するでしょうか? この種の自作の参照カウンターは、人々が実際に行うものですか?