参照が機能するときに多型に使用されるポインタのみを参照するのはなぜですか?私は参照が一度しか結び付けられないことを知っていますが、それは唯一の理由ですか?つまり、は常にであり、再割り当てする必要はありません。なぜポリモーフィズムにポインタだけが使用されていますか?
答えて
factoryから参照を返すのは、really bad ideaです。
のコメントで述べたように、あなたが明らかに(それらがnull作るの横)のポインタ用として参照のために同じ意味を持つことができ、私のポイントは、工場で例えば、これは不自然な構文を必要とすることである。
return */*<--*/object_ptr; // dereferencing a pointer to match return type of factory
ユーザーコード:
Base& ref= Factory::GetObject(//...
//...
delete &/*<--*/ref;
または
auto object = make_unique<Base>(&/*<--*/Factory::GetObject(//...
動的に割り当てられたオブジェクトへの参照を返すことは可能です。 – Peter
この関数の呼び出し元は、このオブジェクトをどのくらい正確に削除しますか? – NoSenseEtAl
'delete&object;' – nwp
- 1. なぜポインタが変更されていますか?
- 2. なぜアンカー名にAlphaNumericだけが許可されていますか?
- 3. C++ポリモーフィズム - 基本ポインタ
- 4. なぜポインタは上書きされ続けますか?
- 5. なぜWhile文が1回だけ実行されていますか?
- 6. なぜニューラルスタックが使用されていますか?
- 7. なぜガウス混合モデルが使用されていますか?
- 8. なぜhybrisでレシピが使用されていますか?
- 9. ベクトルとポリモーフィズムへのユニークなポインタ
- 10. Cでは、配列ポインタかポインタとして使用されていますか?
- 11. なぜこれは一度だけ追加されますか?
- 12. これらの関数で異なるポインタとvoidポインタが使用されるのはなぜですか?
- 13. グアバでは、なぜ "?super T"が可能なところで "T"だけが使用されますか?
- 14. なぜスプリングブートバッチジョブは1回だけ実行されていますか?
- 15. 私のMacrubyポインタがvoidポインタとして渡されても生き残れないのはなぜですか?
- 16. バックアップディスクリプタにリストされているアイテムだけがバックアップされていますか?
- 17. なぜ1回だけロギングされますか?
- 18. 汎用ポインタが汎用参照によってキャプチャされないのはなぜですか?
- 19. なぜsparkが "name 'sqlContext'が定義されていないかを教えてください。どうすればsqlContextを使用できますか?
- 20. なぜ "autoreconf"が頻繁に使用されていないのですか?
- 21. なぜ* headの代わりに** headが使用されていますか?
- 22. このマクロはなぜ使用されていますか?
- 23. Twine 1.9.1がまだPyPiにアップロードされているのはなぜですか?
- 24. 2つのクラスがインストールされていますが、1つだけが使用されます
- 25. なぜcharポインタを使用できないのですか?
- 26. なぜintポインタ '++'は1ではなく4だけインクリメントするのですか?
- 27. なぜTCPでbind()が使用されていますか?なぜそれはクライアント側ではなくサーバー側でのみ使用されますか?
- 28. なぜ2のNULLポインタがfalseに評価されないのですか?
- 29. すべての関数の先頭に定数のcharポインタが使用されるのはなぜですか?
- 30. spring mvc3 @ResponseBodyには415のサポートされていないメディアタイプが使用されました。なぜですか?
あなたの質問は十分に明確ではありません。あなたは詳細を教えていただけますか? –
これはあなたが個人的に最も頻繁に読んでいるコードを持つ人々の動機づけとコードスタイルに関する質問です。なぜインターネット上の見知らぬ人があなたをここで助けることができると思いますか? – Yakk
@ヤクあなたが質問を誤解させようとする場合にのみ。もしあなたがそれを読んでいないのであれば、 "多型になると再割り当て可能性の他にも、参照を使ってポインタを使うことに技術的な利点があるのですか?"と読んでください。 – nwp