C 物件成員

2021-10-03 08:48:26 字數 2828 閱讀 3794

上圖:表示一條線的類需要兩個點的物件;

實際上線段的例項化應該有引數:

(y)//可以用初始化列表也可以不用;

coordiante::

~coordiante()

void coordiante::

setx

(int _x)

int coordiante::

getx()

void coordiante::

sety

(int _y)

int coordiante::

gety()

line.h

#include

"coordinate.h"

class

line

;

line.cpp

#include

"line.h"

#include

using

namespace std;

line::

line

(int x1,

int y1,

int x2,

int y2)

:m_coora

(x1,y1)

,m_coorb

(x2,y2)

//因為coora、coorb兩個物件比line先例項化,如果在line的建構函式裡初始化coora和coorb就會來不及,只能用初始化列表,在line的建構函式執行之前就先把初始值傳給coora和coorb;

line::

~line()

void line::

seta

(int x,

int y)

void line::

setb

(int x,

int y)

void line::

printinfo()

demo.cpp

#include

#include

//#include "coordinate.h"//如果加了會出錯:「class」型別重定義,只加line.h就行了(line.h已經引用了coordinate.h)

#include

"line.h"

using

namespace std;

intmain

(void

)

執行結果:

coordiante()

1,2coordiante()

3,4line()

(1,2

)(3,

4)~line()

~coordiante()

3,4~

coordiante()

1,2請按任意鍵繼續.

..

補充:如果物件a中有物件成員b,物件b沒有預設建構函式,那麼物件a必須在初始化列表中初始化物件b。

定義具有2個物件的coordinate陣列,遍歷物件陣列,列印物件資訊;

#include

using

namespace std;

class

coordinate

// 列印座標的函式

void

printinfo()

public

:int m_ix;

int m_iy;};

intmain

(void

)return0;

}

執行結果:

(1,

2)(3,4)

C 物件成員

物件成員 乙個物件中包含其他物件 如 class line 當例項化這樣乙個物件時,會先例項化m coora,再例項化m coorb,最後例項化line 物件消亡時,會先銷毀line,再m coorb,最後m coora 如果座標類有乙個預設建構函式,那麼在例項化線段物件的時候,不使用初始化列表。如...

c 之物件成員

class line 線段類物件呼叫了下面的點類的物件來構成他 coordinate coordinate int x,int y void line setb int x,int y void line printinfo cout p printinfo delete p p null retu...

c 類成員物件

成員物件 當乙個類的成員是另乙個類的物件時,這個物件就叫成員物件。1 出現成員物件時,如果成員物件的建構函式是有參建構函式,則該類的初始化列表需要對成員物件進行初始化。class member class test 2 乙個有成員物件的類例項化時要先呼叫成員物件的建構函式,然後再呼叫該類的建構函式,...