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

2021-07-11 05:43:04 字數 1153 閱讀 3743

在c++類中同樣的預設成員函式一共有六個,即使使用者不定義,編譯器也可以給出。分別為:

1、建構函式;

2、析構函式;

3、拷貝建構函式;

4、賦值運算;

5、取位址運算;

6、const取位址運算;

我們一下述程式為例驗證下上面說法:

#include 

using

namespace

std;

class

complex

~complex() //析構函式

complex(const

complex &c) //拷貝建構函式

complex& operator=(const

complex &c) //賦值運算

cout

<< "complex operator=(const complex &c)!!"

<< endl;

return *this;

}complex* operator&(const

complex &x) //取位址運算

const

complex* operator=(const

complex &c)const

//const取位址運算

private:

int m_real;

int m_image;

};int main()

*執行結果:*

我們可以看到每次都呼叫了相應的函式,下面我們看下如果不定義這些程式會不會成功執行吧!

#include 

using

namespace

std;

class

complex

;int main()

執行後我們發現程式完全ok,並沒有錯誤,所以當我們沒定義時,體貼的編譯器也會幫我們提供這六種預設成員函式的。

類的六個預設成員函式

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

類的六個預設成員函式

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

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

類有六個預設成員函式 今天我們來看一下前三個 一 建構函式 什麼是建構函式呢?看下圖 如圖 建構函式的特性有 1.函式名與類名相同 2.沒有返回值 3.有初始化列表 可以不用 4.新物件被建立,由編譯器自動呼叫,且在物件的生命週期內僅呼叫一次 5.建構函式可以過載,實參決定了呼叫哪個建構函式 6.如...