关闭

c++读书笔记——多重继承

323人阅读 评论(0) 收藏 举报
分类:

  多重继承时一个类的直接基类多于一个,则该类得到多个基类的属性和行为。定义多重继承的语法类似于单一继承,只是要在冒号后面列出每个基类的名称和继承方式。对于多个基类的初始化,也需要采用成员初始化列表形式完成。

  与单一继承类似,在构造多基类的派生类对象时,需要首先调用基类的构造函数,然后执行派生类的构造函数。这里需要注意,对于多个基类构造函数的调用,是以声明继承关系时所列基类的顺序进行的,而不是以在成员初始化列表中所列基类构造函数调用的顺序进行的。

#include<iostream>
 
class  BaseA{
  int n;
public :
BaseA(int m)  :n(m){
std::cout<<"BaseA::BaseA:n="<<n<<std::endl;}
~BaseA(){
     std::cout<<"BaseA::BaseA:n="<<n<<std::endl;
}
};

  class BaseB{
    double d;
public:
BaseB(double c):d(c){
std::cout<<"BaseB::BaseB:d="<<d<<std::endl;
}
~BaseB(){
      std::cout<<"BaseB::BaseB:d="<<d<<std::endl;
}
};

class Derived:public BaseA,public BaseB{
    char ch;
public :
    Derived(int m,double c,char cc):ch(c),BaseB(c),BaseA(m){
    std::cout<<"Derived::Derived:ch="<<ch<<std::endl;
}
~Derived(){
  std::cout<<"Derived::Derived:ch="<<ch<<std::endl;
}
};
int main(){
   Derived d(1,2.5,‘A');
}


0
0
查看评论

C++学习之继承篇(多继承与多重继承)

1.多继承 多继承是指一个子类继承多个父类。多继承对父类的个数没有限制,继承方式可以是公共继承、保护继承和私有继承, 不写继承方式,默认是private继承 多继承举例: #include #include #include using namespace std; ...
  • hudfang
  • hudfang
  • 2016-01-21 18:55
  • 15102

C++ 虚函数表研究 (二) 多重继承

C++ 虚函数表研究 (二) 多重继承
  • tangaowen
  • tangaowen
  • 2010-08-22 23:26
  • 5737

<C++略识>之多重继承、多继承、虚继承

问题:什么是多重继承? 定义三个类:人、士兵、步兵,则有:步兵士兵人,这样的关系称之为多重继承,写法如下:class Person { }; classSoldier:publicPerson { }; classInfrantryman:publicSoldier { };问题:什么是多继承...
  • u013003827
  • u013003827
  • 2016-07-22 22:29
  • 3387

详谈C++虚函数表那回事(多重继承关系)

C++多重继承关系中虚函数表相关
  • Li_Ning_
  • Li_Ning_
  • 2016-07-13 00:51
  • 1366

一个c++多重继承的例子

/*一个多重继承的例子,以下的所有函数均直接写在类中*/ #include #include using namespace std; /*定义Hdd类表示硬盘*/ class Hdd { private: int rpm;//转速 int size;//容量 int cache;//缓...
  • xiongyangg
  • xiongyangg
  • 2014-04-27 16:31
  • 1802

c++多重继承的内存分布

观察下面一段代码:class ClassA { public: virtual ~ ClassA(){}; virtual void FunctionA(){}; }; class ClassB { public: virtual void FunctionB(){}; }; ...
  • Mimahoo
  • Mimahoo
  • 2016-04-16 10:02
  • 251

C++ 多重继承 虚拟继承的使用

转载自:http://www.cppblog.com/zmllegtui/archive/2008/10/28/65385.aspx 面向对象编程语言中的多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。  ...
  • miyunhong
  • miyunhong
  • 2016-10-28 15:12
  • 653

C++ 多重继承,虚析构确定

来个例子就明了了: #include using namespace std; class Base1 { public: virtual ~Base1(){ cout<<"Base1"<<endl; } }; class ...
  • wdkirchhoff
  • wdkirchhoff
  • 2015-02-05 08:53
  • 1018

C++多重继承的指针问题

下面说说C++多重继承中关于指针的一些问题。指针指向问题 先看下面的程序:class Base1 { public: virtual void fun1() {cout << "Base1::fun1" << endl;}; };class Ba...
  • T_27080901
  • T_27080901
  • 2015-05-17 21:04
  • 1066

C++多重继承与二义性避免

1. 什么是多重继承的二义性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class A{ public:     void f(); } ...
  • yang2011079080010
  • yang2011079080010
  • 2016-05-14 17:34
  • 714
    个人资料
    • 访问:333671次
    • 积分:6033
    • 等级:
    • 排名:第4983名
    • 原创:241篇
    • 转载:196篇
    • 译文:5篇
    • 评论:27条
    最新评论