关于能否通过基类对象的引用给子类赋值的问题。
比如说:
class A
{
public:
A(int num):m_num(num){}
protected:
int m_num;
};
///////////////////////////////////////////
A zhy(123);
class B:public A
{
B(A &ZHY,m_name)
{
如何利用这个A对象的引用ZHY把B中从A类继承过来的m_num赋值?
}
private:
int m_name;
};
因为实际写的程序中A有很多参数,所以能不能不一个一个分别赋值(即把A对象引用中的各变量一个一个的赋给B类从基类继承过来的那部分,而是通过引用一次就把B类从基类继承过来的那部分全都赋值?请大家指教!
[解决办法]
B(A &ZHY,m_name):A(ZHY)
{
}
为A增加拷贝构造函数
[解决办法]
这样增加拷贝构造函数
class A
{
public:
A(int num):m_num(num){}
A( const A& a ): m_num( a.m_num ){ } //增加的拷贝构造函数
protected:
int m_num;
};
///////////////////////////////////////////
A zhy(123);
class B:public A
{
public: //构造函数共有
B(A &ZHY, int m_name) //构造函数
: A(ZHY)
, m_name(m_name)
{
//如何利用这个A对象的引用ZHY把B中从A类继承过来的m_num赋值?
}
private:
int m_name;
};
//使用如下
void main()
{
A a(10);
B b( a,3);
}