2012-08-25 13 views
6

これはおそらく以前に尋ねられていますが、参照(int &の名前)は検索者の参照カウントと同じであるため、単一のものを見つけることができませんでした。スマートポインタ対参照

なぜスマートポインタの代わりにリファレンスが記述されていないのですか?それはちょうどヌルの場合ですか、それとも他に何かありますか? いずれにも利点と欠点はありますか?

答えて

7

私はあなたの用語が混ざっていると思います。参照と用語参照カウントという用語は、実際に同じことを話しているわけではありません。

リファレンスとスマートポインタ、またはその点に関するポインターは非常に異なり、互換性がありません。

参考資料の再販はできません。つまり、一度リファレンスを取得すると、最初に参照したものだけを参照することができます。参照は単なるメモリアドレスです。

ポインタは、メモリアドレスを指します。異なるメモリアドレスを指すように変更することができます。

スマートポインタが参照カウントをしていると言うと、スマートポインタはスマートポインタが指しているメモリを参照しているオブジェクトの数をカウントしていることを意味します。これは参照とは異なります。

私は役立つことを願っています。

+0

参照と参照カウントが同じではないことはよく知っています。 Googleやそのような検索者が、参照やスマートポインタの代わりに、違い(文脈)を見ることができず、参照カウントとスマートポインタに関連するサイトを表示します – efaj

+0

しかし、スイッチされた/スワップされているか、他のものを参照するように作られている。これで、スマートポインタを置き換えないのは明らかです。 – efaj