我有以下代码,我想知道为什么它写出“22”而不是垃圾
class example
{
public:
example(int ea) : ref(ea)
{
}
int& ref;
};
int main ()
{
example obj(22);
cout << obj.ref; // Writes out 22
return 0;
}
我认为这应该发生:
- obj(22) 将 22 隐式转换为临时整数
- 整数被复制到 int ea 参数
- ref 使用对 ea 参数的引用进行初始化
- ea参数被破坏
为什么参考仍然有效?