ポインターよりも参照が好まれることは知っていますが、これらすべての「。」を変更するのは非常に面倒です。必要に応じて "->" に変更します。では、必要に応じてスマート ポインターに簡単に変換できるように、常に参照の代わりにポインターを使用することは許容されるのでしょうか? または、ポインターへの参照をすばやく変更する方法はありますか?
4 に答える
したがって、参照の代わりに常にポインターを使用し、必要に応じてスマートポインターに簡単に変換することは許容される慣行ですか?
いいえ、一般的に、ルールは常に悪いものです。(これを含む)。参照をスマート ポインターに変換する必要があるのはなぜですか。参照であれば、メモリ管理について心配する必要はありません。それがスマート ポインターの目的です。
または、ポインターへの参照をすばやく変更する方法はありますか?
はい、アドレスを取得します ( &
)。
ソースコードのテキスト置換を容易にするためだけにアーキテクチャを変更しますか?
いいえ、これは有効な設計上の決定ではありません。Luchian が説明したように、これはそもそも実際に存在する考慮事項のようには見えません。
参照の代わりにポインターを使用しても、後でスマート ポインターに簡単に変換することはできません。すべてのポインターをスマート ポインターに置き換えるだけで、すべてが機能することを期待することはできません。スマート ポインターのセマンティクスは、ポインターのセマンティクスとは大きく異なります (通常、必要なものではありません)。
値セマンティクスを持つクラスで参照の代わりにポインターを使用することは理にかなっています。参照を使用して期待される代入セマンティクスを実装することは、不可能ではないにしても難しいからです。スマートポインターはそれとは何の関係もありません。
参照を使用するポイントは、参照を通常の非ポインター変数のように使用できるため、少し簡単にすることです。
しかし、それが簡単でない場合、またはさらに難しい場合、それらを使用する理由はまったくありません。
ポインターを使用しても問題はありません。