成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細介紹C++類繼承關系問題

開發 后端
C++中繼承分為三種關系:public、protected和private,public繼承是C++類中最為常用而且非常重要的一種繼承關系。

對***次接觸到C++類繼承的用戶和學者來說,但是首先要對C++類繼承的性質進行充分了解,那么就先說一下什么是C++類,所謂C++類:類是定義同一類所有對象的變量和方法的藍圖或原型。

1. public
從語義角度上來說,public繼承是一種接口C++類繼承,根據面向對象中的關系而言就是,子類可以代替父類完成父類接口所聲明的行為,也就是必須符合“Liskov替換(LSP)”,此時子類可以自動轉換成為父類的接口,完成接口轉換。從語法角度上來說,public繼承會保留父類中成員(包括函數和變量等)的可見性不變,也就是說,如果父類中的某個函數是public的,那么在被子類繼承后仍然是public的。

2. protected
從語義角度上來說,protected繼承是一種實現繼承,根據面向對象中的關系而言就是,子類不能代替父類完成父類接口所聲明的行為,也就是不符合“Liskov替換原則(LSP)”,此時子類不能自動轉換成為父類的接口。

就算通過類型轉換(static_cast和dynamic_cast)也會得到一個空指針。從語法角度上來說,protected繼承會將父類中的public可見性的成員修改成為protected可見性,相當于在子類中引入了protected成員,這樣一來在子類中同樣還是可以調用父類的protected和public成員,子類的子類就也可以調用被protected繼承的父類的protected和public成員。

3. private
從語義角度上來說,private繼承是一種實現C++類繼承,根據面向對象中的關系而言就是,子類不能代替父類完成父類接口所聲明的行為,也就是不符合“Liskov替換原則(LSP)”,此時子類不能自動轉換成為父類的接口。

就算通過類型轉換(static_cast和dynamic_cast)也會得到一個空指針。從語法角度上來說,private繼承會將父類中的public和protected可見性的成員修改成為private可見性,這樣一來雖然子類中同樣還是可以調用父類的protected和public成員,但是在子類的子類就不可以再調用被private繼承的父類的成員了。

  1. class CSample1 {  
  2.      protected:  
  3.          void printProtected() {}  
  4.      public:  
  5.          void printPublic() {}  
  6.      };  
  7.      class CSample2 : protected CSample1 {  
  8.        
  9.      };  
  10.      class CSample3 : public CSample2 {  
  11.          void print3() {  
  12.              printProtected();  
  13.              printPublic();  
  14.          }  
  15.      }; 

在面向對象的理論中有兩種概念:接口、實現,所以就出現了所謂的接口繼承和實現繼承兩種關系。而protected和private就是實現繼承中所要用到的,其實protected和private兩者則約束繼承時并沒有形成兩種不同的繼承類別,而僅僅只是為了方便C++類方法的傳遞調用而設計的。

其實在java這樣面向對象要求更為嚴格的語言當中,沒有實現繼承,他必須通過委托方式來完成這一概念,如果熟悉java就會明白,如果一個對象要使用另外一個對象的接口功能,而自身又不能夠充當該對象所扮演的角色時,就會通過委托來完成。

這樣一來就必須在對象中包含一個委托對象,通過對象調用語法來完成功能;在C++中就可以通過protected和private繼承來完成java中的委托關系(當然C++也可以形成對象委托關系),那么這種情況下protected繼承就容許委托可以傳遞(也就是被多級子類調用),而private繼承是不容許委托被傳遞的。

【編輯推薦】

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法
責任編輯:chenqingxiang 來源: wewill.cn
相關推薦

2011-07-20 13:40:09

拷貝構造函數

2011-06-21 10:17:41

c++內存模型

2011-07-20 13:57:06

C++STL

2010-01-21 13:48:30

C++基類

2011-07-14 11:08:30

C#繼承

2010-01-19 13:17:05

C++數據類型

2011-06-21 15:00:07

JAVAC++

2011-07-20 13:57:06

C++STL

2011-07-20 14:12:48

2010-01-11 09:56:07

C++編程實例

2011-07-13 16:49:59

C++

2011-07-20 15:58:53

C++引用

2011-07-13 11:12:43

C++MFC

2010-02-05 10:46:10

C++文件流

2011-07-14 16:56:21

2011-07-14 23:27:05

C++引用

2010-01-12 15:46:29

測試C++ Test

2010-01-15 18:35:25

C++的類

2011-06-21 10:37:56

const

2011-07-14 16:26:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区观看 | 久久99久久 | 国产精品五月天 | 91久久久精品国产一区二区蜜臀 | 精品综合久久久 | 精品在线观看一区 | 欧美一级大片免费看 | 国产这里只有精品 | 日韩精品一区二区三区久久 | 国产精品视频 | 亚洲一区二区国产 | 亚洲一区精品视频 | 免费网站国产 | 国产亚洲网站 | 日韩国产中文字幕 | 欧美精品中文字幕久久二区 | 国产一区二区三区在线看 | 中文字幕日韩欧美一区二区三区 | 久久新视频| 91在线第一页 | 日本小视频网站 | 三级成人在线 | 中文字幕在线第一页 | 午夜精品一区二区三区免费视频 | 91在线精品视频 | 色免费看| 久久久久久国产精品免费免费 | 中文字幕 在线观看 | 国产免费一级一级 | 国产国语精品 | 中文字幕在线不卡播放 | 亚洲成人动漫在线观看 | 中文字幕日韩一区 | 久久视频精品在线 | 国产精品国产三级国产aⅴ中文 | 九九九色 | 白浆在线 | 精品一区二区视频 | 欧美性网 | 琪琪午夜伦伦电影福利片 | 中文字幕一区二区三区精彩视频 |