2014-03-14 74 views
-5

我不明白構造函數的目的以及它們在C++中的功能。我明白,構造函數a是一個類中的函數,它與該類具有相同的名稱,但沒有返回類型。瞭解C++的構造函數

+0

你喜歡能夠將'int'變量初始化爲一個值(例如'int i = 2;')嗎?好。現在,您是否希望能夠以相同的方式初始化非基元類型的對象?它(通常)需要一個構造函數。 – chris

+0

[谷歌C++構造函數教程]快樂閱讀;或者你可以拿起任何介紹C++書 – jpw

+0

你需要的是一本基本的C++書。也許[The Definitive C++ Book Guide and List](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?rq=1)可以幫助你。 – songyuanyao

回答

2

C++中的構造的目的是可靠地初始化原始內存,通過建立所選類將其變成有用對象不變(你能始終假定關於其成員函數調用之間的對象)。

相反,分配必須更改已經初始化的對象的值,並且可能例如必須釋放已經建立的緩衝區。

只要你不使用的語言水平極低的特點是有一個有效的構造電話保證:一個從類型T擁有至少一個用戶定義的構造函數,每個實例化對象獲得一個外部調用T構造函數,這發生在其他任何事情之前。相反,當通過使用類型名稱作爲僞函數名稱T()或帶參數來調用構造函數時,將創建一個T對象。所以這種保證是雙向的,並且意味着對象創建涉及構造函數調用,反之亦然。