1、在不帶指標的類中可直接使用,編譯器預設的拷貝構造,拷貝賦值,在帶指標的類中需要手動重新編寫。
2、字串長度等於字元數+1,字串以『\0』結束
3、動態分配的記憶體需要利用析構函式釋放記憶體空間new/delete。
4、類中帶指標成員必須手動重寫拷貝構造與拷貝賦值
5、淺拷貝不帶指標的拷貝或者只拷貝指標不拷貝物件動態申請的資源,例如編譯器提供的預設拷貝
6、深拷貝拷貝構造以乙個物件為藍本構造乙個新的物件,新物件創造足夠的空間存放藍本內容然後拷貝藍本內容的過程(拷貝物件指標的同時拷貝物件動態申請的資源)
7、拷貝賦值指兩個物件都有內容,左值清空重新分配右值大小空間並把右值賦值給左值
8、《不可以是乙個成員函式,使用者在用的時候方向會相反,所以最好寫成全域性函式
9、stack,是存在於某個作用域的一塊記憶體空間,例如當你呼叫函式,函式本身即會形成乙個棧用來放置它所接收的引數,以及返回位址。其生命在作用域結束之際結束
10、heap,是指由作業系統提供的一塊全域性記憶體空間,,程式可動態分配從某中獲得若干區塊
11、堆上分配的記憶體都需手動釋放記憶體,否則造成記憶體洩漏
12、如果物件是靜態(static)物件,其生命在作用域結束之後仍然存在,直到整個程式結束。
13、全域性物件,寫在任何作用域之外,其生命在整個程式結束之後才結束,作用域是整個函式。
14、new先分配乙個記憶體空間在呼叫建構函式
15、delete先呼叫析構函式,再釋放記憶體
16、array new 搭配 array delete,否則會記憶體洩漏
17、傳引用只要不是local object就可以
18、static 與物件脫離,不屬於物件,屬於整個類,所有物件可以共享
19、乙個函式處理很多個物件的時候,類成員函式通過this指標找到處理的東西的內容在**
20、什麼時候會使用static資料,固定不變的資料且所以物件共享同一資料時需要加static
21、什麼時候會使用static函式,static沒有this指標,只能處理靜態資料
22、如果是資料是靜態的需要在類外初始化資料,初始化時不需要加static
23、呼叫static函式的方式,通過物件或者通過類名呼叫
24、類模板格式template
25、函式模板格式template
26、namespace,標準庫所有的東西都被包裝在namespacd中
27、用法
(using directive)using namespace std
(using declaration)using std::cout
或者每次使用標準庫封裝內容時加上std::
std::cout.
物件導向高階程式設計
相同class的各物件互為友元 class complex int func const complex param private double re,im string inline string string const char cstr 0 else inline string strin...
C 物件導向高階程式設計 筆記
最近重新複習了一下c 物件導向高階程式設計中知識點,學而時習之,不亦說乎。拷貝建構函式,拷貝的是同型別的物件 賦值建構函式 檢測自我賦值 為什麼?有什麼作用?if this str return this 組合繼承 委託示例 委託 繼承 composite pimpl 編譯防火牆 左邊永遠不用編譯,...
C 物件導向(高階)
1.構造 委託 乙個建構函式可以呼叫另外的建構函式 class aa int i a i,0 a int i,int j 注 避免遞迴呼叫 例 class aa int i a i,0 a int i,int j a 2.不可變物件和類 immutable object and class 不可變物...