建構函式例項化的具體過程

2022-01-10 10:07:19 字數 563 閱讀 5358

new乙個建構函式時具體執行了什麼操作?

1.在記憶體中新建乙個空物件;

2.this指向這個記憶體中的空物件;

3.根據定義的鍵值和傳入的引數,依次給這個空物件新增上鍵值對;

4.在建構函式語句末尾新增return this,也就是把這個指向記憶體中剛剛建立的新物件的指標return出去,傳址賦值給變數。

說明:

1.所以在建構函式中是不會去人為新增return語句的,假設新增了return語句,預設新增的return this將被擋住,無法執行。這就是說:雖然例項化的物件已經在記憶體中建立好了,卻沒有辦法把指標return出去賦值給變數;

2.箭頭函式中的this始終指向定義時的this,在建構函式中,即恆指向在記憶體中建立的新物件,跟誰來執行它沒有關係。

建構函式和例項化

1.物件是構造的。不呼叫建構函式,就不能建立乙個新的物件。2.每個類,包括抽象類,都必須有乙個建構函式。一定要牢記這一點。但是,每個類必須有乙個建構函式並不意味著程式設計師必須輸入它。3.建構函式沒有任何返回型別。建構函式規則 1.建構函式能夠使用任何訪問修飾符,包括private。私有建構函式指只...

模板函式 例項化與具體化

首先,例項化從字面上來看就是產生乙個實際的事物。在函式模板中就是產生乙個特定的函式定義,例如有乙個swap函式 template void swap t a,t b 使用模板,並不意味著我們生成了一系列的函式定義,而是一種方案,當我們傳遞型別進入的時候才生成出對應的swap函式定義,比如現在swap...

例項化和具體化

primer plus在解釋具體化和例項化看的有點亂,分解出來備忘 在 中包含函式模板本身並不會生成函式定義,它只是用於生成函式定義的方案 編譯器使用模板為我寫型別生成函式定義時,得到的是模板例項 如這個模板 templatevoid swap t t1,t t2 呼叫int i 10,j 20 c...