首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于能否通过基类对象的引用给子类赋值的有关问题

2012-03-01 
关于能否通过基类对象的引用给子类赋值的问题。 比如说:classA{public:A(intnum):m_num(num){}protected:in

关于能否通过基类对象的引用给子类赋值的问题。

比如说:

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);
}

热点排行