C 知識總結

2021-09-24 16:35:54 字數 2535 閱讀 9102

c++總結

一丶運算子過載

1丶基本概念

將運算子看作是一種特殊的函式

運算元是函式的引數,運算結果是函式的返回值

2丶運算子函式

定義過載運算子和定義普通函式類似

函式名由關鍵字operator 和其後要定義的運算子組成

operator=, operator<<, operator+

返回型別:運算結果的型別

參數列:提供參與運算的運算元

3丶類裡的過載

一元運算子要提供乙個類型別的引數

二元運算子需要提供兩個引數分別作為左、右運算元,其中至少乙個引數必須是類型別的

通常宣告為類的友元,以便訪問私有資料成員

4丶注意

(1)不能濫用運算子過載

(2)不能過載的運算子

&&   ||   ,

5丶常用運算子過載

(1)自增自減運算子

(2)賦值運算子

賦值運算子只能用成員函式過載

復合賦值運算子可以用成員或非成員過載

6丶成員運算子與非成員運算子

使用成員運算子的限制

成員運算子左運算元必須是當前類的物件,左運算元不能進行自動型別轉換

非成員運算子為兩個運算元都提供了轉換的可能性

7丶輸入輸出流運算子過載

istream& operator>>(istream&, type&);

ostream& operator<<(ostream&, const type&);

8丶過載下標運算子

下標運算子operator必須是成員函式

接收乙個引數,通常是整值型別

返回乙個元素的引用,以便用作左值

二丶組合與繼承

1丶組合

將乙個類的物件作為另乙個類的成員,被稱作組合或包含

2丶繼承

(1)含義

在已有類的基礎上繼承得到新型別,這個新型別自動擁有已有類的特性,並可以修改繼承到的特性或者增加自己的新特性

在已有類的基礎上建立新類的過程

(2)基類與派生類

1基類的形成

吸收基類成員(全部吸收(構造、析構除外),但不一定可見)

改造基類成員

新增派生類新成員

2訪問控制

訪問控制 表示派生類對基類的繼承方式,使用關鍵字:

public        公有繼承

private        私有繼承

protected    保護繼承

(3)基類的初始化

派生類建構函式宣告為

派生類建構函式 ( 變元表 ) : 基類 ( 變元表 ) , 物件成員1( 變元表 )

… 物件成員n ( 變元表 ) ;

建構函式執行順序:基類   物件成員   派生類

注意基類的建構函式和析構函式不能被繼承

如果基類沒有定義建構函式或有無參的建構函式, 派生類也可以不用定義建構函式

如果基類無無參的建構函式,派生類必須定義建構函式

派生類建構函式的定義

在c++中,派生類建構函式的一般格式為:

派生類::派生類名(引數總表):基類名(參數列)

派生類析構函式

1當派生類中不含物件成員時

在建立派生類物件時,建構函式的執行順序是:基類的建構函式→派生類的建構函式;

在撤消派生類物件時,析構函式的執行順序是:派生類的析構函式→基類的析構函式。

2當派生類中含有物件成員時

在定義派生類物件時,建構函式的執行順序:基類的建構函式→物件成員的建構函式→派生類的建構函式;

在撤消派生類物件時,析構函式的執行順序:派生類的析構函式→物件成員的析構函式→基類的析構函式。

(4)多繼承(不推薦)

乙個類有多個直接基類的繼承關係稱為多繼承

多繼承宣告語法

class  派生類名 : 訪問控制  基類名1 ,  訪問控制  基類名2 ,  … , 訪問控制  基類名n

;類 c 可以根據訪問控制同時繼承類 a 和類 b 的成員,並新增自己的成員

三丶虛函式與多型

(1)定義

多型性是指乙個名字,多種語義;或介面相同,多種實現。

過載函式是多型性的一種簡單形式。

虛函式允許函式呼叫與函式體的聯絡在執行時才進行,稱為動態聯編。

(2)虛函式

冠以關鍵字 virtual 的成員函式稱為虛函式

實現執行時多型的關鍵首先是要說明虛函式,另外,必須用

基類指標呼叫派生類的不同實現版本

注意:基類指標雖然獲取派生類物件位址,卻只能訪問派生類從基類繼承的成員

乙個虛函式,在派生類層介面相同的過載函式都保持虛特性

虛函式必須是類的成員函式

虛函式可以是另乙個類的友元

析構函式可以是虛函式,但建構函式不能是虛函式

(3)虛構析函式

建構函式不能是虛函式

(4)純虛函式

在許多情況下,在基類中不能對虛函式給出有意義的實現,而把它宣告為純虛函式,它的實現留給該基類的派生類去做。

純虛函式說明形式:

virtual  型別  函式名(參數列)= 0 ;

c 知識總結

第一章節 1.類的兩種定義形式 1 在類中定義成員函式 2 在類之後定義成員函式 2.class 和struct的區別 1 c的struct沒有方法,而c 的struct可以有方法 函式 2 c的struct的成員沒有訪問許可權,c 的class則有,且預設許可權私有 3 c的struct並不能為空...

C 知識總結

1.概念屬性 概念屬性,屬性就是物件具有的特徵值,每個物件具有的每個屬性都有特徵值。例如 年齡是 23 歲,性別是男等特徵,這個就是物件 的屬性及屬性值。2.物件與類 物件與類的區別 物件是實實在在存在的,具體到那個是物件 類是乙個模板而已,是虛構的,不存在的。比如我現在操作的這部電腦是戴爾電腦,就...

c 前期知識總結

在這裡只把知識點點出來供大家檢驗是否掌握,如果沒有掌握的可以自己翻看筆記。7 15 1.命名空間 2.using兩種用法 3.main函式的用法 4種 4.注釋的用法 7 16 1.consolel類的屬性和方法 2.資料型別 3.變數與常量 4.3種命名方法 5.值型別與引用型別 6.c 3.0中...