智能指针 vs 引用

9

我敢打赌这个问题可能已经被问过了,但是由于搜索者将引用(例如int& name)视为引用计数,所以无法找到任何东西。

为什么从来没有提到将引用作为智能指针的替代方案?仅仅是为了处理null的情况,还是有其他原因?使用它们各有什么优缺点?

1个回答

12

我认为您混淆了术语。引用和引用计数这个术语并不是在谈论同一件事情。

引用、智能指针甚至指针本身都非常不同,不能互换使用。

引用不能重新定位。也就是说,一旦您有了一个引用,它只能引用最初所引用的内容。引用仅仅是一个内存地址。

而指针则指向内存地址;指针可以被更改以指向不同的内存地址。

当有人说智能指针执行引用计数时,他们指的是智能指针正在计算引用内存地址的对象数量。这与引用是不同的。

希望这可以帮助您。


我很清楚引用和引用计数不是同一回事。就像谷歌和这里的搜索引擎一样,他们看不出区别(语境),只显示与引用计数和智能指针有关的站点,而非引用和智能指针。 - efaj
但是,我不知道引用不能被切换/交换或指向其他东西。现在,由于这个原因...很明显为什么它们不能替代智能指针了。 - efaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接