首页 > 编程语言 > 详细

C++继承与派生(原理归纳)

时间:2015-03-22 11:49:53      阅读:211      评论:0      收藏:0      [点我收藏+]

   1.   C++继承与java不同,java遵循单继承,但java的接口为其不足做了很好的弥补了。 C++则是灵活的多,为多继承。即一个C++类可以同时继承N个类的属性。

    技术分享

2. 对于继承方式 :

    有三种:  public ,private,protect,对于public继承的类,其公有成员依然是公有成员,私有成员依旧是私有成员。  

    对于protect,private 则有限制 ,就好比一个水管,公有水管是最大号的,对于水的流量没有限制。保护水管,是中等的号的,对于大号水管的流量使其变成中等流量,对于中等以下的不限制。私有水管,则是最小号的,对于大于私有水管限制的统统的改为私有水管的标准。 其中私有继承,其实就是一种绝育的措施。就是以后的继承就没有太大意义。

 

技术分享

3.对于继承关于构造和析构顺序原里的归纳:

看代码:

  

 1 #include<iostream>
 2 using namespace std ;
 3 
 4 class Base1 {
 5 
 6 public :
 7     Base1() {
 8         cout << "Default Base1"  << endl;
 9     }
10     Base1(int i) {
11         cout << "Base1"<<i<< endl;
12     }
13     ~Base1() {
14         cout << "Base1 析构" << endl;
15     }
16 };
17 
18 class Base2 {
19 
20 public :
21     Base2() {
22         cout << "Default Base2"  << endl;
23     }
24     ~Base2() {
25         cout << "Base2 析构" << endl;
26     }
27     Base2(int i) {
28         cout << "Base2" << i << endl;
29     }
30 };
31 class Base3 {
32 
33 public :
34     Base3() {
35         cout << "Default Base3" << endl;
36     }
37     ~Base3() {
38         cout << "Base3 析构" << endl;
39     }
40     Base3(int i) {
41         cout << "Base3" << i << endl;
42     }
43 
44 };
45 
46 
47 class Derived : public Base1, public Base2, public Base3  //(1)先 在这儿开始构造从左到右
48      //析构则是从右到左
49 {
50 
51 public :
52     Derived() {
53         cout << "Default Derived" << endl;
54     }
55     ~Derived() {
56         cout << "Derived 析构" << endl;
57     }
58     Derived( int a , int  b , int c , int d )  
59         :men2(b),Base1(a),Base3(c), Base2(d),men1(b) {   
60         cout << "Derived" << endl;
61     };
62 
63 private :
64     //构造从左到右
65     Base3 men3;
66     Base2 men2;
67     Base1 men1;
68 
69     //析构则是从底部开始往上析构,先 Base 1,2,3
70 };
71 
72 int main(void ) {
73 
74     Derived obj(1,2,3,4);
75     return 0;
76     
77 }

结果:

   

Base11
Base24
Base33
Default Base3
Base22
Base12
Derived
Derived 析构
Base1 析构
Base2 析构
Base3 析构
Base3 析构
Base2 析构
Base1 析构
请按任意键继续. . .

 

 

C++继承与派生(原理归纳)

原文:http://www.cnblogs.com/gongxijun/p/4356866.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!