亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

計(jì)算機(jī)等級(jí)

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

時(shí)間:2024-09-23 15:56:03 計(jì)算機(jī)等級(jí) 我要投稿
  • 相關(guān)推薦

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

  C++相對(duì)眾多的面向?qū)ο蟮恼Z(yǔ)言,具有相當(dāng)高的性能。下面是小編收集的計(jì)算機(jī)二級(jí)C++常見(jiàn)考點(diǎn)分析,希望大家認(rè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)的角度,根據(jù)它所擁有的基類(lèi)數(shù)目不同,可以分為單繼承和多繼承。一個(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)是相對(duì)而言的,一個(gè)基類(lèi)可以是另一個(gè)基類(lèi)的派生類(lèi),從而形成了復(fù)雜的繼承結(jié)構(gòu),出現(xiàn)了類(lèi)的層次;(lèi)與派生類(lèi)之間的關(guān)系如下:

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

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

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

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

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

  派生類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù)

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

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

  ……

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

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

  ……,

  <成員對(duì)象名m>(<參數(shù)表n+m>)

  {

  <派生類(lèi)構(gòu)造函數(shù)體>

  }

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

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

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

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

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

  (2)執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序(自上而下);

  (3)執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。

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

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

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

  2?派生類(lèi)的析構(gòu)函數(shù)

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

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

  (2)調(diào)用成員對(duì)象析構(gòu)函數(shù),對(duì)派生類(lèi)新增的成員對(duì)象進(jìn)行清理。

  (3)調(diào)用基類(lèi)析構(gòu)函數(shù),對(duì)基類(lèi)進(jìn)行清理。

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

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

計(jì)算機(jī)二級(jí)C語(yǔ)言常見(jiàn)考點(diǎn)積累07-16

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

2017年全國(guó)計(jì)算機(jī)二級(jí)office考點(diǎn)分析05-26

計(jì)算機(jī)二級(jí)考試C++試題06-01

計(jì)算機(jī)二級(jí)excel考點(diǎn)10-05

計(jì)算機(jī)二級(jí)考試C++試題及答案09-20

計(jì)算機(jī)二級(jí)考試C++試題及答案08-14

計(jì)算機(jī)二級(jí)VFP重要考點(diǎn)08-18

2016計(jì)算機(jī)二級(jí)C++模擬試題及答案11-06

計(jì)算機(jī)二級(jí)c++主要考試內(nèi)容07-15