C++关于引用类型的成员变量的初始化有关问题
C++关于引用类型的成员变量的初始化问题
代码可以简化为:
有两个类 A 和 B
class A
{
public:
B &b(); //调用的函数必须是这个不能更改!!作业要求,是给定的
private:
int x;
int y;
B &b ;//可以更改,是我自己想的
}
B的构造函数形式为B(int i, int j)
问题是怎么通过 B &b()函数正确初始化并调用类 B
------解决方案--------------------
成员变量如果是引用,只能通过初始化列表的形式初始化。可以添加一个A的构造函数
如:A(intx,int y):b(x,y){}即可
------解决方案--------------------
------解决方案--------------------
代码可以简化为:
有两个类 A 和 B
class A
{
public:
B &b(); //调用的函数必须是这个不能更改!!作业要求,是给定的
private:
int x;
int y;
B &b ;//可以更改,是我自己想的
}
B的构造函数形式为B(int i, int j)
问题是怎么通过 B &b()函数正确初始化并调用类 B
------解决方案--------------------
成员变量如果是引用,只能通过初始化列表的形式初始化。可以添加一个A的构造函数
如:A(intx,int y):b(x,y){}即可
------解决方案--------------------
class A
{
public:
B &b()
{
return b; //这样就可以返回成员变量b的引用,不需要把b定义成引用类型
}
private:
int x;
int y;
B b ;
}
------解决方案--------------------
class A
{
public:
A(int nx,int ny) //在A构造里初始化
{
x=nx;
y=ny;
m_b = B(x , y);//我猜想你需要的用来构造类B的参数是x, y,自行修改,也可以放到函数 B &b()中
}
~A();
B &b()
{
return m_b;
}
private
int x;
int y;
B m_b ;
}
int X = 1;
int Y = 2;
A a1 = A(X,Y);
B & b1 = a1.b();