c++ 派生类 复制构造函数、赋值函数 小例子

class Base

{

public:

Base(int n):num(n){}

Base(const Base& rhs):num (rhs.num){}

Base& operator = (const Base& rhs)

{

if (this != &rhs)

{

num = rhs.num;

}

return *this;

}

virtual ~Base(){}

virtual void print() { cout<<num<<endl; }

void print(int i) { cout<<i<<endl;}

int getnum(){ return num;}

private:

int num;

};

 

class Dervied:public Base

{

public:

Dervied(int n,const string & str):Base(n),name(str){}

Dervied(const Dervied& rhs):Base(rhs),name(rhs.name){}

Dervied& operator =(const Dervied& rhs) 

{

if (this != &rhs)

{

Base::operator =(rhs);

name = rhs.name;

}

return *this;

}

~Dervied(){}

void print(void) { cout<< name <<getnum() << endl;}

private:

string name;

};

 

 

void main( void )

{

Base      item(5);

Dervied   iDerv(2,"hi");

item.print();

iDerv.print();

cout<<"--------------------"<<endl;

Base* iter=new Dervied( 3,"hello");

iter->print(100);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值