類與物件 中篇

2021-09-25 18:11:57 字數 2622 閱讀 3395

1:類的6個預設成員函式

2:建構函式

1):概念

乙個特殊的成員函式,名字與類名相同,建立類型別物件的時候,由編譯器自己呼叫,在物件的生命週期中且呼叫一次,以保證每個資料成員都有乙個合適的初始值

2):建構函式的特性:

class date 

;

test.cpp

//無參建構函式

date:

:date()

//帶參建構函式

date:

:date

(int year,

int month,

int day)

intmain()

class date 

;

test.cpp

#include

"test.h"

//如果使用者顯式定義了建構函式,編譯器將不再生成

//date::date(int year, int month, int day)

intmain()

3):預設建構函式

未提供顯式初始值的建構函式

4):建構函式的作用

3:析構函式

1):概念:與建構函式功能相反,析構函式不是完成物件的銷毀,區域性物件的銷毀是由編譯器完成的,而物件在銷毀時會自動呼叫析構函式,完成類的一些資源清理工作。

2):特性

test.h

class line 

;

test.cpp

#include

"test.h"

#include

#include

typedef

int datatype;

seqlist:

:seqlist

(int capacity=10)

seqlist::~

seqlist()

}void seqlist:

:testseqlist()

intmain()

4:拷貝建構函式

test.h

class date 

;

test.cpp

#include

"test.h"

date:

:date

(int year,

int month,

int day)

date:

:date

(const date& d)

void date:

:print()

intmain()

概念:

只有單個形參,該形參是對本類型別物件的引用(一般常用const修飾),在用已存在的類型別物件建立新物件時由編譯器自動呼叫。

特性:

5:賦值操作符過載

概念:對於類型別的物件,我們需要對「=」進行過載,已完成類型別之間的賦值

test.h

class date 

;

test.cpp

#include

"test.h"

date:

:date

(int year,

int month,

int day)

date& date:

:operator=

(const date& d)

return

*this;

}void date:

:print()

intmain()

6:const成員函式

將const修飾的類成員函式,稱之為const成員函式,const修飾類成員函式,實際修飾該成員函式隱含的this指標,表明在該成員函式中不能對類的任何成員進行修改。

test.h

class date 

;

test.cpp

#include

"test.h"

void date:

:display()

void date:

:display()

const

intmain()

7:取位址及const修飾的取位址操作符過載

test.h

class date 

;

test.cpp

#include

"test.h"

date* date:

:operator&()

const date* date:

:operator&()

const

類與物件(中篇)

如果乙個類中什麼成員都沒有,簡稱為空類,任何乙個類在我們不寫的情況下,都會自動生成下面6個預設成員函式。概念建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資料成員都有 乙個合適的初始值,並且在物件的生命週期內只呼叫一次。特性 建構函式是特殊的成員函式,需要注...

程式設計師成長之旅 類和物件中篇

析構函式 拷貝建構函式 賦值運算子過載 const成員 取位址及const取位址運算子過載 如果乙個類中什麼都沒有,我們都知道它是空類,但是空類是不是什麼事情都不做,答案當然是否定的,它會生成6個預設函式。概念建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資...

類與物件 物件

一 什麼是物件?1.物件是由我們自己建立的類來建立出來的。2.物件就是類的例項 可以真正使用類的資料,可以呼叫類中元素的資料 3.乙個類可以建立出多個物件 二 如何建立物件?1.保證用來建立物件的類是存在 2.需要通過類中提供的構造方法建立物件 格式 new 構造方法 引數值 三 建立好的物件的有何...