2.在C語言中struct有了自己的含義,雖然在C++中擴展成了類,但一般情況還是遵循C中的用法
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網站建設、域名、網頁空間、網站托管、服務器托管、企業(yè)網站設計、興平網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
3.C++一般情況下用class來做類的關鍵字聲明
4.繼承是C++中代碼復用的方式,通過繼承,在子類中可以使用父類中的代碼
5.子類可以完全繼承父類中所有的變量和函數(shù),在可以使用父類的地方就可以用子類代替
6.子類從概念上而言是一種特殊的父類
7.類和分出來的類之間的關系叫:繼承,擁有原來類的全部屬性,類之間的關系叫做:組合。
8.屬性主要用于描述類的靜態(tài)特性,行為主要描述類的動態(tài)特性
9.用變量來表示屬性,用函數(shù)來表示行為
10.類通常分為兩個部分:
(1)類的實現(xiàn)細節(jié):
(2)類的使用方式;
(3)當使用類時,不需要關心其實現(xiàn)細節(jié)
(4)當創(chuàng)建一個類時,才需要考慮其內部實現(xiàn)細節(jié)
11.封裝的基本概念
.并不是類的每個屬性都是對外公開的
.而一些類的屬性是對外公開的
.因此,需要在類的表示法中定義屬性和行為的公開級別
12.C++中類的封裝:
.成員變量(C++中用于表示類屬性的變量)
.成員函數(shù)(C++中用于表示類行為的變量)
.在C++中可以給成員變量和成員函數(shù)定義訪問級別
.public--類的外部可以自由的訪問
. protected--類自身和子類中可以訪問
. private--類自身中可以訪問
13.類成員的作用域都只在類的內部,外部無法直接訪問
.成員函數(shù)可以直接訪問成員變量和調用其他成員函數(shù)
14.類的外部可以通過類變量訪問public成員
.類成員的作用域與訪問級別沒有關系
C++中用struct定義的類的所有成員默認為punlic
15.在C++中用class表示類,在C語言中用struct表示類
class和struct的用法是完全相同的,在C++中class類默認是private,在C中struct默認是public
構造與析構
16.C++中的類可以定義與類名相同的特殊成員函數(shù)
17.這種與類名相同的成員函數(shù)叫做構造函數(shù)
18.構造函數(shù)在定義時可以有參數(shù),但是沒有任何返回類型的聲明
19.構造函數(shù)的調用
.一般情況下C++編譯器會自動調用構造函數(shù)
.在一些情況下則需要手工調用構造函數(shù)
20.成員函數(shù)的重載:
.類的成員函數(shù)和普通函數(shù)一樣可以進行重載,并遵守相同的重載規(guī)則
21.兩個特殊的構造函數(shù):
.沒有參數(shù)的構造函數(shù)(默認構造函數(shù)):
.含const引用的構造函數(shù)(拷貝構造函數(shù)):
22.當類中沒有定義任何一個構造函數(shù)時,C++編譯器會自動提供,
當定義了構造函數(shù)時,C++編譯器就不會提供無參構造函數(shù)
23.在對類進行操作的時候,不能對成員變量進行初始化
24.C++中提供了初始化列表對成員變量進行初始化
語法規(guī)則:
Constructor::Contructor():m1(v1),m2(v1,v2),m3(v3) { }
25.成員變量的初始化順序與聲明順序相關,與在初始化列表中的順序無關
初始化列表先于構造函數(shù)的函數(shù)體執(zhí)行
26.類中的const成員是肯定會被分配空間的
27.類中的const成員變量只是一個只讀變量(編譯器無法直接得到const成員變量的初始值,因此無法進入符號表成為真正意義上的常量)
28. 初始化與賦值不同:
初始化是用已經存在的對象或值對正在創(chuàng)建的對象進行初值設置(被初始化的對象正在創(chuàng)建)
賦值是用已存在的對象或值對已經存在的對象進行值設置(被賦值的對象已經存在)
29.一般而言所有被銷毀的對象都需要做清理
30.方案:
.為每個類都提供一個public的destroy函數(shù)
.對象不再被需要時立即調用destroy函數(shù)進行清理
31.在構造函數(shù)中申請的資源,需要在對象銷毀前釋放
32.C++中的類可以定義一個特殊的成員函數(shù)清理對象
33.這個特殊的成員函數(shù)叫做析構函數(shù):定義~classname()
.析構函數(shù)沒有參數(shù)也沒有任何返回類型的聲明
.析構函數(shù)在對象銷毀時自動被調用
34.類的靜態(tài)成員
.在C++中可以定義靜態(tài)成員變量和靜態(tài)成員函數(shù)
.靜態(tài)成員屬于整個類所有,不需要依賴任何對象
.可以通過類名直接訪問public靜態(tài)成員
.可以通過對象名訪問public靜態(tài)成員
.靜態(tài)成員函數(shù)可以直接訪問靜態(tài)成員變量
35.靜態(tài)成員變量的定義(static)成員和函數(shù)都是
36.C++類對象中的成員變量和成員函數(shù)是分開存儲的,成員變量存儲在對象中,static存儲在全局數(shù)據區(qū),成員函數(shù)存儲于代碼段中,計算機中,程序由數(shù)據段和代碼段構成的.
37.this指針指向當前的對象
操作符重載
38.C庫中
39.cout表示屏幕的對象,cin表示鍵盤的對象,endl標識符表示換行操作。
40.操作符重載為操作符提供不同的語義
41.C++中通過operator關鍵字可以利用函數(shù)擴展操作符
.operator的本質是通過函數(shù)重載實現(xiàn)操作符重載
42.private聲明使得類的成員不能被外界訪問
但是通過friend關鍵字可以例外的開放權限,ostream輸出流
43.用成員函數(shù)重載的操作符
.比全局操作符重載函數(shù)少一個參數(shù),即左操作數(shù)
.不需要使用friend關鍵字
44.操作符重載:
.當無法修改左操作數(shù)的類時,使用全局函數(shù)進行重載
.=,[],和->操作符只能通過成員函數(shù)進行重載
45.&&和||無法實現(xiàn)短路規(guī)則.