给引用赋临时变量这在编译时是通不过的,体现为:int& a=0;以及从给引用赋与函数的返回值,这都是给引用赋临时变量。无论是VC还是g++都是通不过的,但是下面这种情况确是个例外:
class Yinyong
{
public:
Yinyong(int y=0):i(y)
{}
int& i;
};
这种情况g++把临时变量y整个付给了i,程序正常运行,但是在VC中还是给i赋予了临时变量,并且最终的i的值是随机值。但是这两种编译器都没有报错和警告。
给引用赋临时变量这在编译时是通不过的,体现为:int& a=0;以及从给引用赋与函数的返回值,这都是给引用赋临时变量。无论是VC还是g++都是通不过的,但是下面这种情况确是个例外:
class Yinyong
{
public:
Yinyong(int y=0):i(y)
{}
int& i;
};
这种情况g++把临时变量y整个付给了i,程序正常运行,但是在VC中还是给i赋予了临时变量,并且最终的i的值是随机值。但是这两种编译器都没有报错和警告。