咁岩學緊C++ 寫緊Dead Space.
寫Game就等係要有武器啦. 咁槍有好多種 有釘槍, 電鋸槍, 話知你咩槍都好.
Dead Space最出名就係 Plasma Cutter, Saw Gun.



咁我就用C++ 寫左呢兩支做Example

1. Class, Object, Polymorphism
話知你咩槍. 好多method, attribute 都一定有既
E.g.: 開槍, reload function.
E.g. Damage, WeaponName
Class Diagram.

而WeaponBase就係一個"Blueprint" 寫晒每支槍應該有既attribute and function.
Plasma Cutter, Saw Gun.(Object) 可以Extends from WeaponBase (Class)
同時實現Dynamic polymorphism.
因為兩把槍 射既子彈係唔一樣. Plasma Cutter射電漿, Saw Gun射把鋸出黎.
2者都可以Override existing class OpenFire();
就算第時加把Plasma Rifle, Line Gun.
OpenFire() 都可以reuse function from plasma cutter


可以減少多餘既Code. 加減野都可以直接從WeaponBase Class. 唔會出現"改少少就仆直".
其它轉頭再講
