引數初始化表,構造 析構函式,友元

2021-08-03 03:45:24 字數 1903 閱讀 7526

#includeusing namespace std;

class time

;class time2

private:

int hour;

};int main()

;//只適用於public的成員

time2 t2;

cout << t1.hour << endl;

//cout << t2.hour << endl;//私有成員不能這麼用了

t2.display();

return 0;

}

#includeusing namespace std;

class time2

time2(int h)//有】引數的建構函式(過載1)

time2(int h, int m) :hour(h), min(m) {}//引數初始化表

//有】引數的建構函式(過載2)

~time2()//只能有乙個析構函式,(建構函式可以多個

void display()

private:

int hour;

int min;

};int main()

建構函式包括:

預設建構函式

用於初始化的建構函式

用於賦值物件的建構函式

轉換型別的建構函式(詳見我的另一篇c++過載的博文

#includeusing namespace std;

class time

void set()

void display()

private:

int hour;

int min;

};int main()

#include using namespace std;

class date; // 對date類的提前引用宣告

class time

;class date // 宣告date類

;time::time(int h, int m, int s) // 定義time類的建構函式

void time::display(date &d) //定義display函式

date::date(int m, int d, int y) //類date的建構函式

int main()

格式:

類模板名  《實際的型別名》 物件名(引數);

如,compare  cmp(4, 7);

#include using namespace std;

templateclass compare // 定義類模板,名為compare

numtype max()

numtype min()

{ return (xcmp1(3, 7); // 定義cmp1,操作兩個整數

cout << cmp1.max() << " is the maximum of two inteder numbers."

// 定義cmp2,操作兩個浮點數

建構函式 引數初始化列表

建立類物件時會自動呼叫建構函式 建構函式不需且不能手動呼叫 預設建構函式 在建立物件時不必給出實參的建構函式。包括無參建構函式和全部引數都有預設值的建構函式。如果使用者沒有定義建構函式,則系統會自動提供乙個預設建構函式,即上述的無參建構函式,函式體為空。當給類中的私有常量定義時,必須通過引數初始化列...

過載 初始化列表 友元

1 函式過載 overload 在同一作用域中,函式名相同,引數列表不同,則多個函式形成過載 引數列表不通 引數型別不同或者個數不同 cpoint float x 0,y 0 建構函式宣告 預設例項化物件在沒有賦值情況下x 0,y 0,因此在用此函式時,不能定義無參構造 函式,以免產生二義性 cpo...

建構函式和初始化表

1.無參構造 預設建構函式 無參並非嚴格的沒有引數的建構函式,而是不需要提供實際引數的建構函式,比如存在有預設引數 integer integer int a 10 也算是預設建構函式,可以無參呼叫。integer p1 new integer integer p2 new integer inte...