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...