繁体   English   中英

C ++:非临时const引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM