建構函式語法:
建構函式函式名和類名相同,沒有返回型別,連void都不可以,但可以有引數,可以過載
析構函式語法:
析構函式函式名是在類名前面加」~」組成,沒有返回型別,連void都不可以,不能有引數,不能過載
class
data
//建構函式(有參的構造)
data
(int n)
//析構函式
1、建構函式分類:
按引數型別:分為無參建構函式和有參建構函式
按型別分類:普通建構函式和拷貝建構函式(複製建構函式)
2、建構函式的呼叫
class data
//建構函式(有參的構造)
data
(int n)
//析構函式(沒有返回值型別 沒有引數 不能過載)
~data()
};void
test02()
## 拷貝建構函式
```cpp
//拷貝建構函式
記住一句話:舊物件 初始化 新物件 才會呼叫拷貝建構函式。
data ob1(10);
data ob2(ob1);//拷貝構造
data ob3 = data(ob1);//拷貝構造
data ob4 = ob1;//拷貝建構函式
注意:下方的就不會呼叫拷貝構造
data ob1(10);
data ob2;
ob2 = ob1;//不會呼叫拷貝構造 單純物件 賦值操作
案例:void test04()
{data ob1(10);//呼叫有參構造
data ob2;//呼叫無參構造
ob2 = ob1;//物件的賦值
cout<
預設建構函式(空) 預設析構函式(空) 預設拷貝建構函式(淺拷貝)
1、如果使用者提供了有參構造 將遮蔽 系統的預設建構函式。
data ob1;//err
2、如果使用者提供了有參構造 不會遮蔽 系統的預設拷貝建構函式。
data ob1(10);
data ob2 = ob1;
ob2.num == 10
3、如果使用者提供了拷貝建構函式 將遮蔽 系統的預設建構函式、預設拷貝建構函式。
data ob1;//err
總結:對於建構函式:使用者一般要實現:無參構造、有參構造、拷貝構造、析構。
類 建構函式和析構函式
一.類 類定義的變數就是物件 1.建構函式 只有 建立物件的時候系統自動呼叫的函式 初始化物件 1 建構函式名與類名相同 2 建構函式沒有返回值 3 建構函式可以過載 注意 關於建構函式 1 如果建構函式被呼叫了,則一定有乙個新物件被建立了 2 如果有乙個新物件被建立,則一定有乙個建構函式被呼叫了 ...
類的建構函式和析構函式
1.把物件的初始化工作放在建構函式中,把清除工作放在析構函式中。當物件被建立時,建構函式被自動執行。當物件消亡時,析構函式被自動執行。這下就不用擔心忘了物件的初始化和清除工作。2.建構函式 析構函式與類同名,由於析構函式的目的與建構函式的相反,就加字首 以示區別。3.建構函式與析構函式都沒有返回值型...
類的建構函式和析構函式
類的資料成員是私有的,所以不能使用常規的賦值方法,像結構體那種的。一般來講。最好在建立物件的同時,對它進行初始化。例如 stock gift gift.buy 10,22.22 這種情況下,company 沒被賦值。程式宣告物件時,自動呼叫建構函式。一定不能將類成員名稱用作建構函式的引數名。建構函式...