多个成员列表赋值时,怎么处理,急!!!
就拿SimpleWindow说吧,在构造时,若参数是(SimpleWindow &W1,SimpleWindow &W2)
实现时,只有一个的话,我可以
(SimpleWindow &W1):W(W1)
现在怎么办?
[解决办法]
(SimpleWindow &W1,SimpleWindow &W2):W(W1),Q(W2)
一样
[解决办法]
class A
{
A(B & a1, B & a2);
B m1;
B m2;
}
A::A(B & a1, B & a2):m1(a1),m2(a2)
{
}
A::A(B & a1, B & a2)
{
m1 = a1;
m2 = a2;
}
不是都可以吗? 怎么了m1和m2不是一定要在成员初始列表里进行初始化, 因为m1和m2本身不是引用类型! 只有引用对象的初始化才必须在其定义的同时进行!
第一种方法是通过调用类B的拷贝构造函数对m1和m2进行初始化,
而第二种方法是调用类B的默认构造函数对m1和m2进行初始化,而后调用该类的赋值函数对m1和m2进行赋值操作。 所以第一种方法可能开销更小些