多继承概念

  • 一个类有多个直接基类的继承关系称为多继承
  • 多继承声明语法

class  派生类名 : 访问控制  基类名1访问控制  基类名2 ,  … , 访问控制  基类名n

{

数据成员和成员函数声明

};

  • 类 C 可以根据访问控制同时继承类 A 和类 B 的成员,并添加

自己的成员

多继承的派生类构造和访问

  • 多个基类的派生类构造函数可以用初始式调用基类构造函数初始化数据成员
  • 执行顺序与单继承构造函数情况类似。多个直接基类构造函数执行顺序取决于定义派生类时指定的各个继承基类的顺序。
  • 一个派生类对象拥有多个直接或间接基类的成员。不同名成员访问不会出现二义性。如果不同的基类有同名成员,派生类对象访问时应该加以识别
#include <iostream>
using namespace std; class Base1
{
public:
Base1(int b1)
{
this->b1 = b1;
}
void printB1()
{
cout<<"b1:"<<b1<<endl;
}
protected:
private:
int b1;
}; class Base2
{
public:
Base2(int b2)
{
this->b2 = b2;
}
void printB2()
{
cout<<"b2:"<<b2<<endl;
}
protected:
private:
int b2;
}; class B : public Base1, public Base2
{
public:
B(int b1, int b2, int c): Base1(b1), Base2(b2)
{
this->c = c;
}
void printC()
{
cout<<"c:"<<c<<endl;
}
protected:
private:
int c;
}; void main()
{
B b1(, , );
b1.printC();
b1.printB1();
b1.printB2();
cout<<"hello..."<<endl;
system("pause");
return ;
}

C++——类的多继承的更多相关文章

  1. Action类为何要继承ActionSupport

    Action类为何要继承ActionSupport   理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.open ...

  2. 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?

    接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 1. 接口可以继承接口. 2. 抽像类可以实现(implements)接 ...

  3. C++学习19 类的多继承

    在前面的例子中,派生类都只有一个基类,称为单继承.除此之外,C++也支持多继承,即一个派生类可以有两个或多个基类. 多继承容易让代码逻辑复杂.思路混乱,一直备受争议,中小型项目中较少使用,后来的 Ja ...

  4. 24 类:组合 继承 super关键字 面向对象的三大性

    组合 组合:自定义类的对象作为另外一个类的属性 class Teacher: def __init__(self, name, age): self.name = name self.age = ag ...

  5. Java开发笔记(四十八)类的简单继承

    前面介绍了类的基本用法,主要是如何封装一个类的各项要素,包括成员属性.成员方法.构造方法等,想必大家对类的简单运用早已驾轻就熟.所谓“物以类聚,人以群分”,之所以某些事物会聚在一起,乃是因为它们拥有类 ...

  6. Es5中的类和静态方法 继承

    Es5中的类和静态方法 继承(原型链继承.对象冒充继承.原型链+对象冒充组合继承) // es5里面的类 //1.最简单的类 // function Person(){ // this.name='张 ...

  7. Day 5-<补充> 类的的继承和查找顺序

    类的继承于查找顺序: 在py2中,不继承object的类为经典类,经典类继承查找:深度优先. 在py3中,默认继承object,所以python3中都是新式类,新式类的继承查找:广度优先. 类的特殊属 ...

  8. DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例

    本文已收录至:开源 DotNetty 实现的 Modbus TCP/IP 协议 ModbusFunction 类图如下: 如前文所述,所有请求/相应的 PDU 均继承自 ModbusFunction, ...

  9. Hibernate中的Entity类之间的继承关系之一MappedSuperclass

    在hibernate中,Entity类可以继承Entity类或非Entity类.但是,关系数据库表之间不存在继承的关系.那么在Entity类之间的继承关系,在数据库表中如何表示呢? Hibernate ...

  10. mfc 类三种继承方式下的访问

    知识点 public private protected 三种继承方式 三种继承方式的区别 public 关键字意味着在其后声明的所有成员及对象都可以访问. private 关键字意味着除了该类型的创 ...

随机推荐

  1. 原型对象(JS中的父类)

    原型 prototype 我们所创建的每一个函数,解析器都会向函数中添加 一个属性prototype ,这个属性对应的对象就是我们所谓的原型对象  判断函数中是否含有prototype属性,有则返回 ...

  2. GitHub排名TOP30的机器学习开源项目

    对于机器学习者来说,阅读开源代码并基于代码构建自己的项目,是一个非常有效的学习方法.看看以下这些Github上平均star为3558的开源项目,你错了哪些? 1. FastText:快速文本表示和文本 ...

  3. Vultr账户充值需要注意的事项

    一.Vultr充值注意事项 1.选择适合自己的充值工具.我们可以使用支付宝.信用卡.PAYPAL等支付方式,需要我们注意的是充值方式不要来回切换充值,如果我们有多账户的时候一定不要相互使用,以免导致账 ...

  4. 初始化workbook时可能忽略的问题

    正常情况下解析excel 先初始化workbook,使用文件名称后缀来初始化的. 一般情况下 这种是没有问题的,但是当遇到如果是07版本的 xlsx结尾的文件 改了后缀 为xls后 解析就会发生异常 ...

  5. JUC 一 CyclicBarrier 与 Semaphore

    java.util.concurrent CyclicBarrier简介 CyclicBarrier:可重用屏障/栅栏 类似于 CountDownLatch(倒计数闭锁),它能阻塞一组线程直到某个事件 ...

  6. SQL Server 获取所有库名

    ----1. 获取所有的数据库名----- SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME   -----2. 获取所有的表名------ ...

  7. bzoj1038题解

    [题意分析] 求一个下凸壳与一段折线的距离. [解题思路] 先把直线按斜率排序,求出下凸壳,然后枚举所有的顶点的x坐标求最短y坐标差,复杂度O(nlog2n). [参考代码] #include < ...

  8. NX二次开发-UFUN打开信息窗口UF_UI_open_listing_window()

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); //方法1(uc1601) uc1601();// ...

  9. NX二次开发-UFUN单对象选择对话框UF_UI_select_with_single_dialog

    #include <uf.h> #include <uf_ui.h> ], void* user_data, UF_UI_selection_p_t select) { if ...

  10. NX二次开发-UF_OBJ_cycle_by_name遍历名字

    使用前自己要看好名字是加在body,还是face,还是curve,或者其他,别加错了. NX9+VS2012 #include <uf.h> #include <uf_obj.h&g ...