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中...