[問題] 指定class中的成員函數
請教一下眾位高手
一個關於class中成員函數的問題
假如我今天想要定義一個 戰士(warrior) 作 攻擊(attack) 與 移動(move)
(以下code皆為想像,意會用,並不符合syntax)
寫了一個Warrior class
class Warrior {
void Warrior();
void attack();
void move();
}
此時 attack 與 move 並沒有定義如何實作
這些函數的定義是寫在其他地方的
attack可能有很多種 ex: 1. 射箭(bow)
2. 用矛刺(spear)
3. 用斧劈(axe)
move也可能很多種 ex: 1. 跑(run)
2. 跳(jump)
3. 走(walk)
有沒有可能在初始 Warrior 時才告訴他應該怎麼做
例如像這樣:
Warrior Jack(bow, run);
Jack.attack(); // Jack 射箭
Jack.move(); // Jack 跑
如果上面可以辦到
更進一步,是否在執行程式中改變行為,例如:
Jack.move = jump
Jack.move(); // Jack 跳
這樣子的要求不太可能用單純的Virtual與繼承作
例如
class RunBowWarrior : public Warrior{}
因為如果變化很多就要寫很多種derived class了(例如上例9種)。
想請教各位有沒有什麼方法可以達成呢?
感謝大家!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.20.143
推
01/19 23:02, , 1F
01/19 23:02, 1F
→
01/19 23:16, , 2F
01/19 23:16, 2F
→
01/19 23:16, , 3F
01/19 23:16, 3F
推
01/19 23:30, , 4F
01/19 23:30, 4F
→
01/19 23:34, , 5F
01/19 23:34, 5F
推
01/19 23:40, , 6F
01/19 23:40, 6F
→
01/19 23:40, , 7F
01/19 23:40, 7F
推
01/20 00:46, , 8F
01/20 00:46, 8F
→
01/20 11:17, , 9F
01/20 11:17, 9F
※ 編輯: littletempo 來自: 140.112.217.49 (01/20 11:18)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):