類的六個預設成員函式總結(一)

2021-08-08 10:55:39 字數 1624 閱讀 5422

類有六個預設成員函式~

**今天我們來看一下前三個~**
一、建構函式

什麼是建構函式呢??

看下圖:

如圖:建構函式的特性有:

1.函式名與類名相同;

2.沒有返回值;

3.有初始化列表(可以不用)

4.新物件被建立,由編譯器自動呼叫,且在物件的生命週期內僅呼叫一次

5.建構函式可以過載,實參決定了呼叫哪個建構函式

6.如果沒有顯示定義時,編譯器提供乙個預設的建構函式

7.無參建構函式和帶有預設值的建構函式都認為是預設建構函式,並且預設建構函式只有乙個

8.建構函式不能用const來修飾

二、拷貝建構函式

定義:只有單個形參,並且該形參是對本類型別物件的引用(常用const修飾)

public:

cdate()

{}cdate( int year,int month,int day)

:_iyear(year)

, _imonth(month)

, _iday(day)

cdate(const cdate& date)//拷貝建構函式

private:

int _iyear;

int _imonth;

int _iday;

int a;

};

結合**,可以看出拷貝建構函式的特徵有:

1.拷貝建構函式是建構函式的過載;

2.拷貝建構函式的引數必須使用同類型別物件的引用傳遞

3.如果沒有顯示定義,系統會自動合成乙個預設的拷貝建構函式,預設的拷貝建構函式會一次拷貝類的資料成員完成初始化;

void funtest(const cdate date)

//傳值方式作為函式的引數

{}cdate funtest1()

cdate d1(1990, 12,2);

cdate d2(d1);//物件例項化物件

三、析構函式

功能:在物件被銷毀時,由編譯器自動呼叫,完成類的一些資源清理和汕尾工作

析構函式的特性:1.析構函式在類名(即建構函式名)加上~

2.析構函式沒有返回值沒有引數

3.乙個類有且只有乙個析構函式

若未顯示定義,系統會預設生成預設的析構函式

類的六個預設成員函式

類的六個預設成員函式 1.建構函式 2.拷貝建構函式 3.析構函式 4.賦值操作符過載 5.取位址操作符過載 6.const修飾的取位址操作符過載 建構函式 是乙個特殊的成員函式,名字與類名相同,建立類型別物件時,由編譯器自動呼叫,在物件的生命週期內隻且只呼叫一次,以保證每個資料成員都有乙個合適的初...

類的六個預設成員函式

如果乙個類中什麼成員都沒有,則就是空類。但是空類中什麼都沒有嗎?其實並不是這樣的,任何類在我們不寫的情況下,都會自動生成下面六個預設成員函式。class date 無參的建構函式 date int year,int month,int day 有參的建構函式 這兩個建構函式構成了函式的過載,因為它們...

C 之類的六個預設成員函式

在c 類中同樣的預設成員函式一共有六個,即使使用者不定義,編譯器也可以給出。分別為 1 建構函式 2 析構函式 3 拷貝建構函式 4 賦值運算 5 取位址運算 6 const取位址運算 我們一下述程式為例驗證下上面說法 include using namespace std class comple...