structCTest
{
int & m_n;
};
上面的代码不会编译成功,因为它不能产生默认的构造函数或者说初始化引用。我们把它修改成:
structCTest
{
CTest( int & n)
: m_n( n)
{}
int & m_n;
};
int main()
{
inti;
CTest a( i), b( i);
//错误!由于*this,编译器不能产生默认运算符“=”,
//你不能引用‘m_n’到
//其它对象上
a = b;
}