建構函式 函式過載 復合類 析構函式

2021-10-03 08:40:11 字數 2368 閱讀 8374

建構函式特點:

注意:如果不標明public裡面的,程式預設為私有成員變數;

預設建構函式分兩種:1.建構函式不帶引數;2.建構函式帶引數但引數都有預設值;

eg:

circle()

;//預設建構函式

circle

(float a=0,

float b=0,

float c=0)

;//預設建構函式帶引數有預設值

circle

(float a,float b,floay c)

;//普通的建構函式

預設建構函式是指在宣告物件時可以不傳遞引數,使用空值或預設值對物件進行初始化,而普通建構函式在宣告物件時必須傳遞引數,否則普通建構函式的引數 (形參)沒有值,編譯出錯;

注意:如果程式中無建構函式,那麼編譯器會提供乙個空的預設建構函式,它不會對資料成員初始化;

在使用c++程式設計過程中,在建構函式進行類的初始化有兩種方式:

1.

ting

(int a,

int b,

int c)

ting

(int a,

int b,

int c):x

(a),

y(b),z

(c)

對類的成員函式進行初始化:1》效率更高,對類的成員函式來說;2》有些型別的成員變數必須使用初始化列表的形式初始化,如const成員、引用成員;3》在繼承時,子類的建構函式初始化父類的成員時;

在同一作用域中,可以有一組相同的函式名,不同引數列表的函式,這個函式被稱為函式過載;不同的引數列表是指引數不同或引數的型別不同。

eg:

void

fun();

void

fun(

int x)

;void

fun(

int x,

float y)

;

注意:如果只是函式的返回值型別不同,不能被稱為函式過載

eg:

void

fun();

intfun()

;

注意:

1.類中也能定義多個建構函式,但是必須勾成過載函式的條件;

2.宣告物件的引數型別和個數要與建構函式的引數相匹配;

復合類也被稱為組合類,是指將乙個類的物件作為另乙個類的成員變數;

eg:

#include

using

namespace std;

class

point

;point::

point()

point::

point

(float _x,

float _y)

void point::

print()

class

circle

//復合類:乙個類中包含另乙個類的成員變數

;circle::

circle()

circle::

circle

(float x,

float y,

float r)

:center

(x,y)

,radius

(r)void circle::

setcircle

(float r,point p)

//修改半徑和圓心點

void circle::

print()

intmain()

建立物件時,系統會自動呼叫建構函式進行初始化工作,同樣,在銷毀物件時也會自動呼叫乙個函式進行清洗工作(**物件占用的記憶體空間);這個函式就是性析構函式

虛構函式是一種特殊的成員函式,沒有返回值,不用進行使用者呼叫,而是在銷毀物件的過程中自動呼叫;與建構函式不同的是eg:~circle()

特點:1》無返回值 2》不能有引數 3》不能被過載 4》必須共有

eg:

class

test}~

test()

void

print()

;private

:int

*p;}

;void test::

print()

cout<}int

main()

如果類中有指標成員變數,並且指標指向堆記憶體,必須顯式的宣告析構函式,釋放指標指向的堆記憶體,否則會造成記憶體洩漏;

類建構函式 析構函式

下面的例項有助於更好地理解建構函式的概念 include using namespace std class line 成員函式定義,包括建構函式 line line void void line setlength double len double line getlength void 程式的...

類建構函式,類析構函式

類建構函式 the class constructor 是乙個特殊的類成員函式,當我們建立這個類的新物件時,會被執行。乙個建構函式將被確定與類名相同的名字,沒有任何返回值,包括void。建構函式對於給某些類成員變數設定初始值非常有用。例子 include using namespace std cl...

C 類建構函式 析構函式

類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。下面的例項有助於更好地理解建構函式的概念 include using namespace std class...