[英]C++: non-temporary const reference
我需要编写一个类,其构造函数对对象进行常量引用并将其存储在本地。
为了避免我可以预见的大多数常见错误,我只想接受对非临时错误的引用(即:引用左值)。
如何编写一个仅对非临时引用的常量引用的函数?
当然,即使非临时性也可能超出范围,从而打破了我的阶级行为,但我相信通过禁止临时引用,我将避免大多数错误。
如果您要存储引用并且需要在构造函数完成后使用它,那么构造函数最好采用指针:
struct C {
C(const X* p) : p_(p) { }
const X* p_;
};
这样一来,它几乎保证你不会有一个指向一个临时的(除非X
做一些事情非常愚蠢,像重载一元&
返回this
)。
如果构造函数接受指针,那么对于类的用户来说,他们需要注意它们传递给构造函数的X
对象的生命周期也更清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.