C++構造函數

構造函數的作用
在創建對象時,爲對象分配內存空間並初始化
類的構造函數不能被繼承構造函數不能被繼承是有道理的,因爲即使繼承了,它的名字和派生類的名字也不一樣,不能成爲派生類的構造函數,當然更不能成爲普通的成員函數

構造函數的形式
(1)類名 (實參列表) {函數體}
(2)類名 (實參列表):初始化列表{函數體}

注:構造函數名跟類名完全一致,沒有返回值,不具備類型
當構造函數爲私有(private)時,無法用new來創建對象

例子:
class A{
int a;
int b;
public:
//構造函數
};
構造函數:
(1)A(int a1, int b1)
{
a = a1;
b = b1;
}
(2)A(int a1, int b1):a(a1),b(b1){
//函數體
}

構造函數類型
(1)默認構造函數
例:
class A{
//定義了一個空類
};
A aa; //能創建對象,調用默認構造函數

(2)無參無操作數的構造函數
例:
class A{
public:
A()
{} //無參無操作數的構造函數
};
A aa; //能創建對象,調用構造函數

(3)帶有參數的構造函數
例:
class A{
int a;
int b;
public:
A(int a1, int b1):a(a1),b(b1) //初始化列表
{
cout<<"構造函數"<<endl;
}
};
(4)帶有默認值的構造函數
例:
class A{
int a;
int b;
public:
A(int a1 = 10, int b1 = 20):a(a1),b(b1) //初始化列表
{
cout<<"構造函數"<<endl;
}
};
注意:A(int a1,int b1=15):a(a1),b(b1){}
必須從右到左依次帶默認值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章