C 類的組合結合應用例項

2021-10-04 15:37:43 字數 2573 閱讀 9575

構造組合類物件時的初始化次序

例項不僅要對本類中的基本型別成員資料賦初值,也要對物件成員初始化。

類名::類名(物件成員所需的形參,本類成員形參):物件1(引數),物件2(引數),…

①.首先對建構函式初始化列表中列出的成員(包括基本型別成員和物件成員)進行初始化,初始化次序是成員在類體中定義的次序(成員物件構造函式呼叫順序:按物件成員的宣告順序)

②.處理完初始化列表之後,再執行#建構函式的函式體。

設計乙個crectangle類,其中包括cpoint類的兩個物件成員,表示左上角和右下角的兩個點。要求求解矩形的面積。

【注意】每個類的建構函式、複製建構函式需要輸出「*** is called」,具體的請根據輸出進行分析。

main函式已經給定如下:

int main()

int a=1, b=1, c=6, d=11;

cout<<"# define p1 ######"<【樣例輸出】

#define p1 ######

cpoint contstructor with default value(0,0) is called.

#define p2 ######

cpoint contstructor with default value(0,0) is called.

#define rect1 ######

cpoint contstructor with default value(0,0) is called.

cpoint contstructor with default value(0,0) is called.

crectangle default contstructor is called.

#define rect2 ######

cpoint copy contstructor is called.

cpoint copy contstructor is called.

cpoint copy contstructor is called.

cpoint copy contstructor is called.

crectangle contstructor with (cpoint,cpoint) is called.

#define rect3 ######

cpoint contstructor with default value(0,0) is called.

cpoint contstructor with default value(0,0) is called.

crectangle contstructor with (int,int,int,int) is called.

#define rect4 ######

cpoint copy contstructor is called.

cpoint copy contstructor is called.

crectangle copy contstructor is called.

#calculate area ######

rect1面積為0

rect2面積為200

rect3面積為50

rect4面積為200

#include

#include

//如果不加該標頭檔案,之後system("pause")會報錯

using

namespace std;

class

cpoint

//定義cpoint類

intgety()

};cpoint::

cpoint

(int xx,

int yy)

//建構函式的實現

cpoint::

cpoint

(cpoint &p)

//複製建構函式

cpoint::

cpoint()

//預設建構函式

class

crectangle

//定義

;//組合類的建構函式1

crectangle::

crectangle

(cpoint xp1,cpoint xp2):p1

(xp1),p2

(xp2)

//組合類的建構函式2

crectangle::

crectangle

(int x1,

int y1,

int x2,

int y2):p1

(x1,y1),p2

(x2,y2)

//組合類的複製建構函式

crectangle::

crectangle

(crectangle &rec):p1

(rec.p1),p2

(rec.p2)

//組合類的預設建構函式

crectangle::

crectangle()

int crectangle::

getarea()

intmain()

C 類的組合

c 中類的組合 c 中,乙個類包含另乙個類,它的建構函式的執行順序可以說是難點也是重點,最近抽空學習了下,總結如下 先拿何潔月教授上課的例子說明 class point 函式的實現 class distance 類宣告 函式的實現 類組合的建構函式設計 原則 不僅要對本類中的基本型別成員資料賦初值,...

C 類的組合

1 組合 乙個大類中包含很多子類 class funa class funb class fun 2 組合類的建構函式 當給乙個組合類傳引數時,同時要給子類傳參。關鍵要理解為什麼這麼做?一般情況下,資料成員會定義為類的私有成員,那麼函式成員需要用到本類的私有成員,實現某些功能,外部無法改變,那麼就需...

C 類的組合

在類中定義的資料成員一般都是基本資料型別或服復合資料型別。但是還可以根據需要使用 其他類的物件作為正在宣告的資料成員。複雜的物件還可以有比較簡單的物件一某種方式組合 而成,複雜物件和組成它的簡單物件之間的關係是組合關係。在乙個類中內嵌另乙個類的物件作為資料成員,稱為類的組合。該內嵌物件稱為物件成員,...