C++中的多继承

在学习C++的过程中多继承和多重继承很重要,下边就自己的学习过程讲解一下C++中的继承问题:

多继承问题,先来看一段程序

#include<iostream>
using namespace std;
class CBase
{
public:
CBase(){ cout << "wo" << endl; }
~CBase(){ cout << "women" << endl; }
virtual void f1(){ cout << "f1ffff" << endl; }
void f2(){ cout << "f2ffff" << endl; }


};
class WWW
{
public:
WWW(){ cout << "xue" << endl; }
~WWW(){ cout << "xuexi" << endl; }
};
class CSub :public CBase, public WWW
{
public:
CSub(){ cout << "ni" << endl; }
~CSub(){ cout << "nimen" << endl; }
virtual void f1(){ cout << "f1www" << endl; }
void f2(){ cout << "f2www" << endl; }


};
int main()
{
CBase *p1 = new CBase;
CBase *p2 = new CSub;
CSub obj1;
p2->f1();
p2->f2();
delete p1;
delete p2;
cout << "endl" << endl;
return 0;

运行结果如下:

wo
wo
xue
ni
wo
xue
ni
f1www
f2ffff
women
women
endl
nimen
xuexi
women

多继承是指一个子类继承多个父类。多继承对父类的个数没有限制,继承方式可以是公共继承、保护继承和私有继承,

不写继承方式,默认是private继承。

从程序和结果中我们可以看到
在多继承中,任何父类的指针都可以指向子类的对象,在实例化子类时,先根据继承的顺序依次调用父类的构造函数,然后再调用该子类自己的构造函数。用delete时是访问父类函数的析构函数;类指针访问虚构函数位子类的虚构函数,一般函数访问的是定义指针父类的函数,没定义一个类指针,该指针就访问一遍父类到子类的主函数,当定义一个子类时就遍访一边父类到子类的主函数一边,,当程序结束时前边定义了一个类对象时,在程序结束时要遍访一边子类到父类的析构函数,而且程序最后定义的对象在结束时首先被访问析构函数。(暂时写这些以后继续补充)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值