一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

計算機二級C++常見(jiàn)考點(diǎn)分析

時(shí)間:2024-08-17 01:25:50 計算機等級 我要投稿
  • 相關(guān)推薦

計算機二級C++常見(jiàn)考點(diǎn)分析

  C++相對眾多的面向對象的語(yǔ)言,具有相當高的性能。下面是小編收集的計算機二級C++常見(jiàn)考點(diǎn)分析,希望大家認真閱讀!

  繼承與派生

  1?基本概念

  派生類(lèi)從基類(lèi)繼承了各種成員的關(guān)系就稱(chēng)為繼承。

  類(lèi)的繼承是新的類(lèi)從已有類(lèi)那里得到已有的特性。從已有的類(lèi)產(chǎn)生新類(lèi)的過(guò)程就是類(lèi)的派生。在繼承過(guò)程中,原有的類(lèi)或已經(jīng)存在的用來(lái)派生新類(lèi)的類(lèi)稱(chēng)為基類(lèi)或父類(lèi),而由已經(jīng)存在的類(lèi)派生出的新類(lèi)則稱(chēng)為派生類(lèi)或子類(lèi)。

  從派生類(lèi)的角度,根據它所擁有的基類(lèi)數目不同,可以分為單繼承和多繼承。一個(gè)類(lèi)只有一個(gè)直接基類(lèi)時(shí),稱(chēng)為單繼承;而一個(gè)類(lèi)同時(shí)有多個(gè)直接基類(lèi)時(shí),則稱(chēng)為多繼承。

  從上面的描述可知,任何一個(gè)類(lèi)都可以派生出一個(gè)新類(lèi),派生類(lèi)也可以再派生出新類(lèi),因此,基類(lèi)和派生類(lèi)是相對而言的,一個(gè)基類(lèi)可以是另一個(gè)基類(lèi)的派生類(lèi),從而形成了復雜的繼承結構,出現了類(lèi)的層次;(lèi)與派生類(lèi)之間的關(guān)系如下:

  (1)基類(lèi)是對派生類(lèi)的抽象,派生類(lèi)是對基類(lèi)的具體化;(lèi)抽取了它的派生類(lèi)的公共特征,而派生類(lèi)通過(guò)增加信息將抽象的基類(lèi)變?yōu)槟撤N有用的類(lèi)型,派生類(lèi)是基類(lèi)定義的延續。

  (2)派生類(lèi)是基類(lèi)的組合。多繼承可以看作是多個(gè)單繼承的簡(jiǎn)單組合。

  (3)公有派生類(lèi)的對象可以作為基類(lèi)的對象處理。這一點(diǎn)與類(lèi)聚集(成員對象)是不同的,在類(lèi)聚集(成員對象)中,一個(gè)類(lèi)的對象只能擁有作為其成員的其他類(lèi)的對象,但不能作為其他類(lèi)對象而使用。

  2?派生類(lèi)的定義與構成

  定義派生類(lèi)的一般格式如下:

  class<派生類(lèi)名>:<繼承方式1><基類(lèi)名1>,

  <繼承方式2><基類(lèi)名2>,

  ……,

  <繼承方式n><基類(lèi)名n>

  {

  <派生類(lèi)新定義成員>

 。;

  其中,<基類(lèi)名>是已有的類(lèi)的名稱(chēng),<派生類(lèi)名>是繼承原有類(lèi)的特性而生成的新類(lèi)的名稱(chēng)。單繼承時(shí),只需定義一個(gè)基類(lèi);多繼承時(shí),需同時(shí)定義多個(gè)基類(lèi)。

  <繼承方式>即派生類(lèi)的訪(fǎng)問(wèn)控制方式,用于控制基類(lèi)中聲明的成員在多大的范圍內能被派生類(lèi)的用戶(hù)訪(fǎng)問(wèn)。每一個(gè)繼承方式,只對緊隨其后的基類(lèi)進(jìn)行限定。繼承方式包括3種:公有繼承(public)、私有繼承(private)和保護繼承(protected)。如果不顯式地給出繼承方式,缺省的類(lèi)繼承方式是私有繼承private。

  派生類(lèi)的構造函數和析構函數

  1?派生類(lèi)構造函數的一般格式如下:

  <派生類(lèi)名>::<派生類(lèi)名>(<總參數表>):<基類(lèi)名1>(參數表1),

  ……

  <基類(lèi)名n>(<參數表n>),

  <成員對象名1>(<參數表n+1>),

  ……,

  <成員對象名m>(<參數表n+m>)

  {

  <派生類(lèi)構造函數體>

 。

  派生類(lèi)的構造函數名與類(lèi)名相同。在構造函數的參數表中,給出了初始化基類(lèi)數據、成員對象數據以及新增的其他數據成員所需要的全部參數。在參數表之后,列出需要使用參數進(jìn)行初始化的基類(lèi)名和成員對象名以及各自的參數名,各項之間使用逗號分隔。注意對基類(lèi)成員和新增成員對象的初始化必須在成員初始化列表中進(jìn)行。

  當派生類(lèi)有多個(gè)基類(lèi)時(shí),處于同一層次的各個(gè)基類(lèi)的構造函數的調用順序取決于定義派生類(lèi)時(shí)聲明的順序(自左向右),而與在派生類(lèi)構造函數的成員初始化列表中給出的順序無(wú)關(guān)。如果派生類(lèi)的基類(lèi)也是一個(gè)派生類(lèi),則每個(gè)派生類(lèi)只需負責它的直接基類(lèi)的構造,依次上溯。

  當派生類(lèi)中有多個(gè)成員對象時(shí),各個(gè)成員對象構造函數的調用順序也取決于在派生類(lèi)中定義的順序(自上而下),而與在派生類(lèi)構造函數的成員初始化列表中給出的順序無(wú)關(guān)。

  建立派生類(lèi)對象時(shí),構造函數的執行順序如下:

  (1)執行基類(lèi)的構造函數,調用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自左向右);

  (2)執行成員對象的構造函數,調用順序按照各個(gè)成員對象在類(lèi)中聲明的順序(自上而下);

  (3)執行派生類(lèi)的構造函數。

  派生類(lèi)的構造函數只有在需要的時(shí)候才必須定義。派生類(lèi)構造函數提供了將參數傳遞給基類(lèi)構造函數的途徑,以保證在基類(lèi)進(jìn)行初始化時(shí)能夠獲得必要的數據。因此,如果基類(lèi)的構造函數定義了一個(gè)或多個(gè)參數時(shí),派生類(lèi)必須定義構造函數。

  如果基類(lèi)中定義了缺省構造函數或根本沒(méi)有定義任何一個(gè)構造函數(此時(shí),由編譯器自動(dòng)生成缺省構造函數)時(shí),在派生類(lèi)構造函數的定義中可以省略對基類(lèi)構造函數的調用,即省略“<基類(lèi)名>(<參數表>)”。成員對象的情況與基類(lèi)相同。

  當所有的基類(lèi)和成員對象的構造函數都可以省略,并且也可以不在成員初始化列表中對其他數據成員進(jìn)行初始化時(shí),可以省略派生類(lèi)構造函數的成員初始化列表。

  2?派生類(lèi)的析構函數

  與構造函數相同,派生類(lèi)的析構函數在執行過(guò)程中也要對基類(lèi)和成員對象進(jìn)行操作,但它的執行過(guò)程與構造函數嚴格相反,即:

  (1)對派生類(lèi)新增普通成員進(jìn)行清理。

  (2)調用成員對象析構函數,對派生類(lèi)新增的成員對象進(jìn)行清理。

  (3)調用基類(lèi)析構函數,對基類(lèi)進(jìn)行清理。

  派生類(lèi)析構函數的定義與基類(lèi)無(wú)關(guān),與沒(méi)有繼承關(guān)系的類(lèi)中的析構函數的定義完全相同。它只負責對新增普通成員的清理工作,系統會(huì )自己調用基類(lèi)及成員對象的析構函數進(jìn)行相應的清理工作。

【計算機二級C++常見(jiàn)考點(diǎn)分析】相關(guān)文章:

計算機二級C語(yǔ)言常見(jiàn)考點(diǎn)積累08-05

計算機二級考試《Office高級應用》常見(jiàn)考點(diǎn)08-15

計算機二級考試C++試題06-10

2017年全國計算機二級office考點(diǎn)分析06-20

計算機二級考試C++試題及答案08-01

計算機二級考試C++試題及答案10-08

計算機二級excel考點(diǎn)09-16

計算機二級c++主要考試內容09-25

計算機二級C++基礎練習題10-28

2017計算機二級C++考試試題10-20

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看