您好,登錄后才能下訂單哦!
2.在C語言中struct有了自己的含義,雖然在C++中擴展成了類,但一般情況還是遵循C中的用法
3.C++一般情況下用class來做類的關鍵字聲明
4.繼承是C++中代碼復用的方式,通過繼承,在子類中可以使用父類中的代碼
5.子類可以完全繼承父類中所有的變量和函數,在可以使用父類的地方就可以用子類代替
6.子類從概念上而言是一種特殊的父類
7.類和分出來的類之間的關系叫:繼承,擁有原來類的全部屬性,類之間的關系叫做:組合。
8.屬性主要用于描述類的靜態特性,行為主要描述類的動態特性
9.用變量來表示屬性,用函數來表示行為
10.類通常分為兩個部分:
(1)類的實現細節:
(2)類的使用方式;
(3)當使用類時,不需要關心其實現細節
(4)當創建一個類時,才需要考慮其內部實現細節
11.封裝的基本概念
.并不是類的每個屬性都是對外公開的
.而一些類的屬性是對外公開的
.因此,需要在類的表示法中定義屬性和行為的公開級別
12.C++中類的封裝:
.成員變量(C++中用于表示類屬性的變量)
.成員函數(C++中用于表示類行為的變量)
.在C++中可以給成員變量和成員函數定義訪問級別
.public--類的外部可以自由的訪問
. protected--類自身和子類中可以訪問
. private--類自身中可以訪問
13.類成員的作用域都只在類的內部,外部無法直接訪問
.成員函數可以直接訪問成員變量和調用其他成員函數
14.類的外部可以通過類變量訪問public成員
.類成員的作用域與訪問級別沒有關系
C++中用struct定義的類的所有成員默認為punlic
15.在C++中用class表示類,在C語言中用struct表示類
class和struct的用法是完全相同的,在C++中class類默認是private,在C中struct默認是public
構造與析構
16.C++中的類可以定義與類名相同的特殊成員函數
17.這種與類名相同的成員函數叫做構造函數
18.構造函數在定義時可以有參數,但是沒有任何返回類型的聲明
19.構造函數的調用
.一般情況下C++編譯器會自動調用構造函數
.在一些情況下則需要手工調用構造函數
20.成員函數的重載:
.類的成員函數和普通函數一樣可以進行重載,并遵守相同的重載規則
21.兩個特殊的構造函數:
.沒有參數的構造函數(默認構造函數):
.含const引用的構造函數(拷貝構造函數):
22.當類中沒有定義任何一個構造函數時,C++編譯器會自動提供,
當定義了構造函數時,C++編譯器就不會提供無參構造函數
23.在對類進行操作的時候,不能對成員變量進行初始化
24.C++中提供了初始化列表對成員變量進行初始化
語法規則:
Constructor::Contructor():m1(v1),m2(v1,v2),m3(v3) { }
25.成員變量的初始化順序與聲明順序相關,與在初始化列表中的順序無關
初始化列表先于構造函數的函數體執行
26.類中的const成員是肯定會被分配空間的
27.類中的const成員變量只是一個只讀變量(編譯器無法直接得到const成員變量的初始值,因此無法進入符號表成為真正意義上的常量)
28. 初始化與賦值不同:
初始化是用已經存在的對象或值對正在創建的對象進行初值設置(被初始化的對象正在創建)
賦值是用已存在的對象或值對已經存在的對象進行值設置(被賦值的對象已經存在)
29.一般而言所有被銷毀的對象都需要做清理
30.方案:
.為每個類都提供一個public的destroy函數
.對象不再被需要時立即調用destroy函數進行清理
31.在構造函數中申請的資源,需要在對象銷毀前釋放
32.C++中的類可以定義一個特殊的成員函數清理對象
33.這個特殊的成員函數叫做析構函數:定義~classname()
.析構函數沒有參數也沒有任何返回類型的聲明
.析構函數在對象銷毀時自動被調用
34.類的靜態成員
.在C++中可以定義靜態成員變量和靜態成員函數
.靜態成員屬于整個類所有,不需要依賴任何對象
.可以通過類名直接訪問public靜態成員
.可以通過對象名訪問public靜態成員
.靜態成員函數可以直接訪問靜態成員變量
35.靜態成員變量的定義(static)成員和函數都是
36.C++類對象中的成員變量和成員函數是分開存儲的,成員變量存儲在對象中,static存儲在全局數據區,成員函數存儲于代碼段中,計算機中,程序由數據段和代碼段構成的.
37.this指針指向當前的對象
操作符重載
38.C庫中<name.h>頭文件對應C++中的<cname>
39.cout表示屏幕的對象,cin表示鍵盤的對象,endl標識符表示換行操作。
40.操作符重載為操作符提供不同的語義
41.C++中通過operator關鍵字可以利用函數擴展操作符
.operator的本質是通過函數重載實現操作符重載
42.private聲明使得類的成員不能被外界訪問
但是通過friend關鍵字可以例外的開放權限,ostream輸出流
43.用成員函數重載的操作符
.比全局操作符重載函數少一個參數,即左操作數
.不需要使用friend關鍵字
44.操作符重載:
.當無法修改左操作數的類時,使用全局函數進行重載
.=,[],和->操作符只能通過成員函數進行重載
45.&&和||無法實現短路規則.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。