2 聚合
當兩個物件之間是整體與部分的關係時,它們之間就是組合的關係。
對於如下問題:
構建乙個計算機類,一台計算機,由cpu晶元,硬碟,記憶體等組成。cpu晶元也使用類來表示。
計算機類和cpu類就是組合關係,組合關係具有如下特點:
擁有者需要對被擁有者負責,是一種比較強的關係,是整體與部分的關係。
具體組合方式:
1)被組合的物件直接使用成員物件。(常用)
2)使用指標表示被組合的物件,在建構函式中,建立被組合的物件;在析構函式中,釋放被組合的物件。
uml中的組合表示:
注意包含者使用實心菱形(uml畫圖工具:staruml)。
構建乙個計算機類,一台計算機,由cpu晶元,硬碟,記憶體等組成。cpu晶元也使用類來表示。
cpu類:
#pragma once
#include
class cpu
;
#include
"cpu.h"
#include
cpu:
:cpu
(const
char
*brand,
const
char
*version)
cpu::~
cpu(
)
computer類:
#pragma once
#include
"cpu.h"
class computer
;
#include
"computer.h"
#include
computer:
:computer
(const
char
*cpubrand,
const
char
*cpuversion,
int harddisk,
int memory)
:cpu
(cpubrand, cpuversion)
computer::~
computer()
main.cpp:
#include
#include
#include
#include
#include
"computer.h"
using namespace std;
void
test()
intmain
(void
)
構造與析構的順序如下:
cpu::cpu
computer::computer
computer::~computer
cpu::~cpu
聚合不是組成關係,被包含的物件,也可能被其他物件包含。
擁有者,不需要對被擁有的物件的生命週期負責。
需求:給計算機配一台音響。
computer類:
#pragma once
#include
"cpu.h"
class voicebox;
class computer
;
#include
"computer.h"
#include
#include
"voicebox.h"
computer:
:computer
(const
char
*cpubrand,
const
char
*cpuversion,
int harddisk,
int memory)
:cpu
(cpubrand, cpuversion)
void computer:
:addvoicebox
(voicebox *box)
computer::~
computer()
main.cpp:
#include
#include
#include
#include
#include
"computer.h"
#include
"voicebox.h"
using namespace std;
void
test
(voicebox *box)
intmain
(void
)
解析黑客利用交換機漏洞攻擊的常用手段
idc報告顯示,交換機市場近年來一直保持著較高的增長勢頭,到2009年市場規模有望達到15.1億美元。交換機在企業網中占有重要的地位,通常是整個網路的核心所在,這一地位使它成為黑客入侵和病毒肆虐的重點物件,為保障自身網路安全,企業有必要對區域網上的交換機漏洞進行全面了解。以下是利用交換機漏洞的五種攻...
UML中的聯絡 聚合與組合的區別
uml中的聯絡 association 聚合 aggregation 和組合 composition 三個概念很相似,也很難理解。今天看到這篇文章解釋得很清楚,所以在這裡轉一下,希望能對需要的人有所幫助。聯絡 聯絡 association 表明某個物件可以向另乙個物件通過某種方式傳送訊息。傳送訊息的...
黑客攻擊和入侵的八大常用手段有哪些?
黑客攻擊技術近年來的最新動態是什麼?來,一起看看黑客攻擊和入侵的8槍 八大手段。第一槍 硬體安全 利用硬體的黑客技術雖然報道不多,但它的的確確出現了 在bios晶元中植入病毒木馬,讓目前的防火牆 防毒軟體都失效 針對主機板上的電磁輻射進行資訊獲取的技術 僅僅使用軟體非法侵入的方式可能已經落伍,新時期...