C++小結(1)

來源:互聯網
上載者:User
 

1. overload 僅僅傳回值類型不同的函數不能被重載.

2. 所謂私人,是指該成員只能被類本身的方法訪問----即使是這個類的對象也不能直接存取.

3. 類的對象所佔用的空間是其成員變數所用記憶體的總和(可sizeof求證),對象指標指向其首個成員變數地址.對象的函數不佔用對象的記憶體空間(即使函數中有局部變數)

4. const關鍵字的主要作用是利用編譯器進行排錯.和限制對成員的改變.
表現在以下方面:

(1)const成員函數:const位於形參括弧之後,分號之前.該函數不能修改成員變數.
(2)const類:對一個類說明使用了const,實際上是說明了一個const型的this指標,該指標只能調用const成員函數.
(3)const成員變數:==常量
(4)const指標.
int * const pi=0;//指標pi不能再指向其他對象(不允許pi=&x)
const int * pi=0;//指標不能改變所指向地址中的內容(不允許*pi=x);
const int * const pi=0;//指向常量的常量指標.

5. 一定要對所有的指標進行初始化,初始化可以是有效變數地址,也可以是0(null 指標).
   一定要對所有引用的說明進行初始化,引用不可為空,也不能被重新賦值.
必須牢記:引用不等於指標,引用是目標的"別名".對引用的操作(包括賦值和&)都是對目標進行的.
*一個沒有初始化的指標被稱為"失控指標",是非常危險的.

6. 指標用於:
A:處理自由儲存區中的資料;
B:訪問類的成員資料和成員函數;
C:通過引用傳遞的方式給函數傳遞對象或變數.


7. 關鍵字new分配堆中的記憶體。如果分配成功返回一個地址值,否則返回NULL(null 指標).因此,每次使用new時應檢查其傳回值是否有效.
當不再需要一塊記憶體空間時,必須對它的指標使用delete,以釋放目標記憶體空間.
*說明了指標的函數結束時,指標變數本身的範圍也隨之結束,但指標所指向的記憶體空間不會自動釋放,所以必須在函數結束前,對指標使用delete釋放它所指向的記憶體空間.否則導致"記憶體丟失".
*delete不會刪除指標本身,所以被delete的指標可以再次被賦值.
*對一個被delete的指標再次使用delete可能導致程式崩潰.解決辦法是delete一個指標後.立即給它賦值0,而對一個null 指標使用delete是安全的.
*沒有delete一個指標前,對一個已經賦值了的指標重新賦值會導致前一個地址空間丟失.
*良好的習慣是new,delete成對出現.


8. 對一個指向對象的指標使用new運算子分配空間時,會調用對象類的建構函式.與此類似,使用delete刪除一個對象指標時,會調用一個解構函式.


9. 類的成員變數如果是指標變數。其初始化可在建構函式或其他方法中進行,而清除指標所指向的記憶體的工作在解構函式中進行.
在解構函式中delete指標成員變數,不需要再把指標賦值為0,因為一旦對象消失,作為它的成員的指標也不能再被訪問(當然,賦值0也沒害處)

1. overload 僅僅傳回值類型不同的函數不能被重載.

2. 所謂私人,是指該成員只能被類本身的方法訪問----即使是這個類的對象也不能直接存取.

3. 類的對象所佔用的空間是其成員變數所用記憶體的總和(可sizeof求證),對象指標指向其首個成員變數地址.對象的函數不佔用對象的記憶體空間(即使函數中有局部變數)

4. const關鍵字的主要作用是利用編譯器進行排錯.和限制對成員的改變.
表現在以下方面:

(1)const成員函數:const位於形參括弧之後,分號之前.該函數不能修改成員變數.
(2)const類:對一個類說明使用了const,實際上是說明了一個const型的this指標,該指標只能調用const成員函數.
(3)const成員變數:==常量
(4)const指標.
int * const pi=0;//指標pi不能再指向其他對象(不允許pi=&x)
const int * pi=0;//指標不能改變所指向地址中的內容(不允許*pi=x);
const int * const pi=0;//指向常量的常量指標.

5. 一定要對所有的指標進行初始化,初始化可以是有效變數地址,也可以是0(null 指標).
   一定要對所有引用的說明進行初始化,引用不可為空,也不能被重新賦值.
必須牢記:引用不等於指標,引用是目標的"別名".對引用的操作(包括賦值和&)都是對目標進行的.
*一個沒有初始化的指標被稱為"失控指標",是非常危險的.

6. 指標用於:
A:處理自由儲存區中的資料;
B:訪問類的成員資料和成員函數;
C:通過引用傳遞的方式給函數傳遞對象或變數.


7. 關鍵字new分配堆中的記憶體。如果分配成功返回一個地址值,否則返回NULL(null 指標).因此,每次使用new時應檢查其傳回值是否有效.
當不再需要一塊記憶體空間時,必須對它的指標使用delete,以釋放目標記憶體空間.
*說明了指標的函數結束時,指標變數本身的範圍也隨之結束,但指標所指向的記憶體空間不會自動釋放,所以必須在函數結束前,對指標使用delete釋放它所指向的記憶體空間.否則導致"記憶體丟失".
*delete不會刪除指標本身,所以被delete的指標可以再次被賦值.
*對一個被delete的指標再次使用delete可能導致程式崩潰.解決辦法是delete一個指標後.立即給它賦值0,而對一個null 指標使用delete是安全的.
*沒有delete一個指標前,對一個已經賦值了的指標重新賦值會導致前一個地址空間丟失.
*良好的習慣是new,delete成對出現.


8. 對一個指向對象的指標使用new運算子分配空間時,會調用對象類的建構函式.與此類似,使用delete刪除一個對象指標時,會調用一個解構函式.


9. 類的成員變數如果是指標變數。其初始化可在建構函式或其他方法中進行,而清除指標所指向的記憶體的工作在解構函式中進行.
在解構函式中delete指標成員變數,不需要再把指標賦值為0,因為一旦對象消失,作為它的成員的指標也不能再被訪問(當然,賦值0也沒害處)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.