最近才发现C++可以定义引用类型的成员变量,以前一直以为不可以,原因是初始化时有编译错误,现在说明一下如何定义并初始化引用类型的成员变量:
class Test
{
private:
int &a;//引用类型的成员变量
public:
Test(int &b)
{
a = b;
}
};
上面的写法是有问题的,原因是引用类型的成员变量必须在构造函数的初始化列表中进行初始化,因此正确的写法是:
class Test
{
private:
int &a;
public:
Test(int &b) : a(b)//注意写法
{
}
};