[問題] 有關UML的Class Diagm

看板C_and_CPP作者 (newJoey)時間14年前 (2010/08/11 17:11), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
我知道Class Diagm有以下關係 1.一般化關係 (Generalization) 2.相依關係 (Dependency) 3.結合關係 (Association) 4.聚合關係 (Aggregation) 5.實現關係 (Realization) 但除了1、5外 2、3、4在C++程式裡是長怎樣阿? 例如: 1.一般化關係 (Generalization) - 有繼承關係的Class。 class B:A{ ... } 5.實現關係 (Realization) - 有用virtual實作的Class。 Class Printer{ virtual print() {…}; }; Class PrintToPrint:Printer{ virtual print() {…} }; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.117.162

08/11 17:29, , 1F
google it "composition aggregation association"
08/11 17:29, 1F

08/11 17:32, , 2F
相依性和類別提供的介面有關, 假如現在你要實做一個
08/11 17:32, 2F

08/11 17:33, , 3F
MyString 類別, 內部是用std::string實作, 你也提供了
08/11 17:33, 3F

08/11 17:34, , 4F
成員函式 MyString::size 來取得字串長度, 他會呼叫
08/11 17:34, 4F

08/11 17:35, , 5F
std::string::size, 這時候就是MyString相依於std::st
08/11 17:35, 5F

08/11 17:36, , 6F
ring, 表示假如他的介面只要一更改(size→sIzE), 你
08/11 17:36, 6F

08/11 17:37, , 7F
的程式碼也會受到牽連, 剛學不久 t 大別鞭太大力 > <
08/11 17:37, 7F

08/11 20:14, , 8F
realization 是實作 interface 用,你的 base 必須只有
08/11 20:14, 8F

08/11 20:15, , 9F
pure virtual function。這樣才會和 interface 等價。
08/11 20:15, 9F

08/11 20:15, , 10F
有 virtual method 的 class 只能算是 abstract。
08/11 20:15, 10F
文章代碼(AID): #1COcb3yY (C_and_CPP)