建構函式:與類名同、無返回可有引數
class test
void print()
};int main()
; //物件陣列、主動呼叫
for(int i=0; i<3; i++)
return 0;
}類成員函式和普通函式一樣可進行過載,並遵守相同過載規則
類中沒定義任何一建構函式,編譯器預設提供無參建構函式(函式體為空)和拷貝建構函式(簡單的進行成員變數的複製)
類中僅定義非拷貝建構函式,編譯器不再提供無參建構函式,但提供拷貝建構函式
類中僅定義拷貝建構函式,編譯器不再提供無參建構函式
test(const test& obj){}//拷貝建構函式
test t1;test t2(t1);
例:class test
------/例:陣列類的建立array.h
#ifndef _array_h_
#define _array_h_
class array
;#endif
------/ array.cpp
#include "array.h"
array::array(int length)
mlength = length;
mspace = new int[mlength];
}//不能使用預設拷貝建構函式,否則使a1.mspace與a2.mspace內容同,指向同一記憶體
array::array(const array& obj)
for(int i=0; i
array a2(a1);
for(int i=0; i
a1.destory();
a2.destory();
return 0;
}
建構函式(二)
1.轉換建構函式 1 單個引數 的建構函式 2 將其他型別轉換為類型別 3 類的建構函式只有乙個引數是非常危險的,因為編譯器可以使用這種建構函式把引數的型別隱式轉換為類型別 賦值與初始化的區別 1 在初始化語句中的等號不是運算子,編譯器對這種表示方法有特殊的解釋 2 賦值 test test ope...
3 複製建構函式
1 複製建構函式的特點 注意 乙個類中一定會有複製建構函式,要麼是自己寫的要麼是編譯器自動生成的,這與預設建構函式有所不同。編譯器自動生成的複製建構函式完成的是物件間的拷貝工作。程式設計師自己寫的複製建構函式完成的並不一定是物件間的複製工作,雖然道理上它應該完成物件間的複製工作,這取決於程式設計師自...
Swift 3 建構函式 過載建構函式
viewcontroller.swift import uikit class viewcontroller uiviewcontroller person.swift 建構函式 分配記憶體空間 設定初始值 在swift中 所有的構造方法 都是init 建構函式的責任就是 一定構造乙個物件出來 過載...