1. 程式人生 > >C++類使用常用注意事項

C++類使用常用注意事項

在普通的非const成員函式中,this的型別是一個指向類型別的const指標。可以改變this所指向的值,但不能改變this所儲存的地址。

在const成員函式中,this的型別是一個指向const類型別物件的const指標。既不能改變this所指的對戲,也不能改變this所儲存的地址。

一個類哪怕只定義了一個建構函式,編譯器也不會再生成預設建構函式。即只有當一個類沒有定義建構函式時,編譯器才會自動生成一個預設建構函式。
類通常應該定義一個預設建構函式。如果類沒有預設建構函式,則該類就不能用在某些環境中。
使用預設建構函式初始化物件時,應該直接在物件後加分號,而不能在物件後加小括號在加分號。

複製建構函式、賦值操作符和解構函式總稱為複製控制(copy control)。編譯器自動實現這些操作,但類
也可以定義自己的版本。
1. 複製建構函式(copy constructor):是一種特殊建構函式,具有單個形參,該形參(常用const修飾)
是對該類型別的引用。當定義一個新物件並用一個同類型的物件 對他進行初始化時,將顯示使用複製構造函
數。當將該型別的物件傳遞給函式或從函式返回該型別的物件時,將隱式使用複製建構函式。
2. 解構函式(destructor):當物件超出作用域或動態分配的物件被刪除時,將自動應用解構函式。析構函
數可用於釋放物件構造時或在物件的生命期中所獲得的資源。不管類是否定義了自己的解構函式,編譯器都
自動執行類中非static資料成員的解構函式。
3. 複製操作符(assignment operator):可以通過指定不同型別的有運算元而過載。有運算元為類型別的
版本比較特殊:如果我們沒有編寫這種版本,編譯器將為我們合成一個。