在C ++中使用引用成员有什么问题?

时间:2014-09-08 07:36:27

标签: c++

在阅读“C ++编码标准:101规则,指南和最佳实践”时,我遇到了以下内容:

  

请注意,使用引用或auto_ptr成员几乎总是错误的。

但是,案文没有详细说明为什么这应该是错误的。那么有一个有参考成员的班级有什么不对呢?

3 个答案:

答案 0 :(得分:1)

我认为文本告诉你要避免在类中嵌入任何存在不受该类控制的东西。引用和自动指针可以引用已经删除的对象。

答案 1 :(得分:0)

一个问题可能是引用是不可变的,一旦设置就无法更改。另一个问题可能是悬空引用,你可以引用现在被破坏的对象。

答案 2 :(得分:0)

永远不能更改引用成员,使类不可分配。 const对象类型的成员也是如此。此外,最佳做法是将任何无效的引用设置为nullptr,但无法应用。

只需使用指针即可。对于裸指针实际上不会执行的情况,还有std::reference_wrapper

auto_ptr已经过时并且已弃用,因此根本不应该出现。它有复杂的语义。