類的組合(類的包含)

2021-10-05 05:21:42 字數 1415 閱讀 7420

1.組合關係 2.繼承關係

1.封閉類:類a的資料成員(公有或私有)是類b的物件,這一形式是類的組合,類a就叫做封閉類

2.物件成員:類a的資料成員(公有或私有)是類b的物件,則該資料成員叫做物件成員

例如:

#include

#include

using

namespace std;

class

point

friend

class

line;}

;class

line

double

length()

;};double line::

length()

intmain()

line類裡的私有資料成員p1,p2是point類的物件,則p1,p2叫做物件成員

也可以在line類的建構函式改進該**:

#include

#include

using

namespace std;

class

point

friend

class

line;}

;class

line

double

length()

;};double line::

length()

intmain()

例題:寫出程式執行的結果:

#include

using

namespace std;

classa~

a();

int a;};

a::~a(

)class

bvoid

out();

~b()

;};void b::

out(

)b::~b

()intmain()

分析:

很明顯這是物件成員型別的題目(類b的私有資料成員aa為類a的物件),又因為類a沒有無參的建構函式,所以類b中必須要使用初始化成員列表的建構函式,此建構函式的作用就是來生成成員物件aa。1.main函式裡先生成objb物件,之後先呼叫類b的以初始化列表形式賦值的建構函式aa(x),但此建構函式的作用就是來生成成員物件aa,就呼叫類a的建構函式,此時輸出第乙個結果:construct a

2.呼叫完類a的建構函式後要返回來繼續類b的建構函式,b=y,cout<<「construct b」《答案

construct a

construct b

aa=3

b=5deconstruct b

deconstruct a

mybatis類包含類的問題

select from dep sfplan task 直接這樣寫,不會幫你自動匹配的。所以其實 select和column是搭檔 然後搞了個兩層巢狀 select from dep sfplan task select periodid,planid,periodtype from dep sfp...

類的組合,線段(Line)類

我們使用乙個類來描述線段,使用point類物件來表示端點,line類具有計算線段長度的功能,在建構函式中實現。源程式如下。include include using namespace std class point intgetx int gety point point p int point ...

類的組合特性

若在邏輯上a是b的 一部分 則不允許b從a派生,而是要用a和其他部分組合成b。例如眼 eye 鼻 node 口 mouth 是頭的一部分,所以應該head應該由類eye node mouth組合而成,不是派生而成。class eye class node class mouth class head...