[問題] 用C++寫strategy pattern的問題

看板C_and_CPP作者 (阿川)時間15年前 (2010/12/13 15:39), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
大家好 小弟最近在學design pattern 借了「深入淺出 設計模式」這本書 試做一開始的鴨子練習 書上是用Java 小弟想用C++寫寫看(因為我不會Java) #include<iostream> using namespace std; /* quack */ class QuackBehavior { public: virtual void quack(){}; }; class Quack : public QuackBehavior { public: void quack() { cout<<"Quack!!"; } }; /* fly */ class FlyBehavior { public: virtual void fly(){}; }; class FlyWithWings : public FlyBehavior { public: void fly() { cout<<"I'm flying, ya!!"; } }; /* Duck */ class Duck { private: FlyBehavior flybehavior; QuackBehavior quackbehavior; public: void performFly() { flybehavior.fly(); } void performQuack() { quackbehavior.quack(); } }; /* MallardDuck */ class MallardDuck : public Duck { public: Quack quackbehavior; FlyWithWings flybehavior; }; int main() { MallardDuck mallard; mallard.performQuack(); mallard.performFly(); system("pause"); return 0; } 編譯成功 但是執行起來卻沒有顯示我要的字串 想請問是哪邊需要修改呢? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.181.202

12/13 15:48, , 1F
(史帝芬心得筆記:http://home.so-net.net.tw/idealist/
12/13 15:48, 1F

12/13 15:50, , 2F
再者,請用new/delete關鍵字。
12/13 15:50, 2F

12/13 16:05, , 3F

12/13 16:06, , 4F
重點是Dock那兩個Behavior必須是pointer
12/13 16:06, 4F

12/13 16:30, , 5F
謝謝兩位大大 我馬上來研究一下!!
12/13 16:30, 5F
文章代碼(AID): #1D1St3By (C_and_CPP)