我的代码看起来像这样:
class T {};
class container {
const T &first, T &second;
container(const T&first, const T & second);
};
class adapter : T {};
container(adapter(), adapter());
Run Code Online (Sandbox Code Playgroud)
我认为不断引用的生命周期将是容器的寿命.但是,否则看起来,在创建容器后销毁适配器对象,留下悬空引用.
什么是正确的寿命?
适配器临时对象的堆栈范围是容器对象或容器构造函数的范围?
如何正确实现绑定临时对象到类成员引用?
谢谢
我被告知必须在初始化列表中初始化引用变量,但为什么这是错误的?
class Foo
{
public:
Foo():x(0) {
y = 1;
}
private:
int& x;
int y;
};
Run Code Online (Sandbox Code Playgroud)
因为0是临时对象?如果是这样,可以引用什么样的对象?可以拿地址的对象?
谢谢!