前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小朋友学C++(15):多继承

小朋友学C++(15):多继承

作者头像
海天一树
发布2018-04-17 13:07:13
4840
发布2018-04-17 13:07:13
举报
文章被收录于专栏:海天一树海天一树

单继承:子类(派生类)只能有一个父类(基类)。支持单继承的语言有Java, Objective-C, PHP, C#等。

多继承:子类(派生类)可以有多个父类(基类)。支持多继承的语言有C++, Python等。

程序1:

代码语言:javascript
复制
#include <iostream>
using namespace std;
class A
{
public:
    // 构造函数
    A()
    {
        cout << "A's constructor method is invoked!" << endl; 
    } 
};
class B
{
public:
    // 构造函数
    B()
    {
        cout << "B's constructor method is invoked!" << endl; 
    } 
};
// C继承自A和B 
class C : public A, public B
{
public:
    // 构造函数 
    C()
    {
        cout << "C's constructor method is invoked!" << endl;       
    }
};
int main(int argc, char** argv) 
{
    C c;
    return 0;
}

运行结果:

代码语言:javascript
复制
A's constructor method is invoked!
B's constructor method is invoked!
C's constructor method is invoked!

举现实中的一个例子:农民工,既是农民,又是工人。所以农民工继承自农民和工人。

程序2:

代码语言:javascript
复制
#include <iostream>
using namespace std;
class Farmer
{
public:
    Farmer()
    {
        cout << "I am a farmer" << endl;    
    }   
};
class Worker
{
public:
    Worker()
    {
        cout << "I am a worker" << endl;
    }
};
class MigrantWorker : public Farmer, public Worker
{
public:
    MigrantWorker()
    {
        cout << "I am a migrant worker" << endl;
    }
};
int main(int argc, char** argv) 
{
    MigrantWorker m;
    return 0;
}

运行结果:

代码语言:javascript
复制
I am a farmer
I am a worker
I am a migrant worker

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海天一树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档