2017-09-24 8 views
-2

参照が機能するときに多型に使用されるポインタのみを参照するのはなぜですか?私は参照が一度しか結び付けられないことを知っていますが、それは唯一の理由ですか?つまり、は常にであり、再割り当てする必要はありません。なぜポリモーフィズムにポインタだけが使用されていますか?

+6

あなたの質問は十分に明確ではありません。あなたは詳細を教えていただけますか? –

+4

これはあなたが個人的に最も頻繁に読んでいるコードを持つ人々の動機づけとコードスタイルに関する質問です。なぜインターネット上の見知らぬ人があなたをここで助けることができると思いますか? – Yakk

+4

@ヤクあなたが質問を誤解させようとする場合にのみ。もしあなたがそれを読んでいないのであれば、 "多型になると再割り当て可能性の他にも、参照を使ってポインタを使うことに技術的な利点があるのですか?"と読んでください。 – nwp

答えて

1

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(//... 
+2

動的に割り当てられたオブジェクトへの参照を返すことは可能です。 – Peter

+0

この関数の呼び出し元は、このオブジェクトをどのくらい正確に削除しますか? – NoSenseEtAl

+0

'delete&object;' – nwp

関連する問題