码迷,mamicode.com
首页 > 编程语言 > 详细

C++入门经典-例8.6-多重继承的构造顺序

时间:2017-09-21 21:46:22      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:控制台   logs   irb   col   include   class   类构造   plane   cycle   

1:单一继承是先调用基类的构造函数,然后调用派生类的构造函数,但多重继承将如何调用构造函数呢?多重继承中的基类构造函数被调用的顺序以派生表中声明的顺序为准。派生表就是多重继承定义中继承方式后面的内容,调用顺序就是按照基类名标识符的前后顺序进行的。

2:代码如下:

技术分享
// 8.6.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;
class CBicycle
{
public:
    CBicycle()
    {
        cout << "Bicycle Construct" << endl;
    }
    CBicycle(int iWeight)
    {
        m_iWeight=iWeight;
    }
    void Run()
    {
        cout << "Bicycle Run" << endl;
    }

protected:
    int m_iWeight;
};

class CAirplane
{
public:
    CAirplane()
    {
        cout << "Airplane Construct " << endl;
    };
    CAirplane(int iWeight)
    {
        m_iWeight=iWeight;
    }
    void Fly()
    {
        cout << "Airplane Fly " << endl;
    }

protected:
    int m_iWeight;
};

class CAirBicycle : public CBicycle, public CAirplane
{
public:
    CAirBicycle()
    {
        cout << "CAirBicycle Construct" << endl;
    }
    void RunFly()
    {
        cout << "Run and Fly" << endl;
    }
};
void main()
{
    CAirBicycle ab;
    ab.RunFly();
}
View Code

运行结果:

技术分享

C++入门经典-例8.6-多重继承的构造顺序

标签:控制台   logs   irb   col   include   class   类构造   plane   cycle   

原文地址:http://www.cnblogs.com/lovemi93/p/7571424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!