在阅读“C ++编码标准:101规则,指南和最佳实践”时,我遇到了以下内容:
请注意,使用引用或
auto_ptr
成员几乎总是错误的。
但是,案文没有详细说明为什么这应该是错误的。那么有一个有参考成员的班级有什么不对呢?
答案 0 :(得分:1)
我认为文本告诉你要避免在类中嵌入任何存在不受该类控制的东西。引用和自动指针可以引用已经删除的对象。
答案 1 :(得分:0)
一个问题可能是引用是不可变的,一旦设置就无法更改。另一个问题可能是悬空引用,你可以引用现在被破坏的对象。
答案 2 :(得分:0)
永远不能更改引用成员,使类不可分配。 const
对象类型的成员也是如此。此外,最佳做法是将任何无效的引用设置为nullptr
,但无法应用。
只需使用指针即可。对于裸指针实际上不会执行的情况,还有std::reference_wrapper
。
auto_ptr
已经过时并且已弃用,因此根本不应该出现。它有复杂的语义。