मुझे व्युत्पन्न कक्षाएं कब जारी रखनी चाहिए, और मुझे अपने कोड में केवल सशर्त कब जोड़ना चाहिए? एक मिसाइलओओपी: व्युत्पन्न कक्षाएं कब और कब सशर्त के साथ सुविधाओं को लागू करने के लिए?
class Object;
class Projectile : public Object;
class Missile : public Projectile;
class MissileGuided : public Missile;
के लिए जैसे या मैं मिसाइल के कोड में है कि पिछले एक को लागू करना चाहिए?
void Missile::Update()
{
if(homing && ObjectExists(Target))
TurnTowards(Target.Pos)
Pos += Motion;
}
मैं सोच रहा हूँ कि सभी महीन के लिए विवरण दूसरा एक बेहतर है, क्योंकि आप चीजों के संयोजन (जैसे कुछ मिसाइलों रडार पर नहीं दिखाया जा सकता है, कुछ destroyable हो सकता है, कुछ नए का अधिग्रहण कर सकती हो रही शुरू लक्ष्य यदि मूल नष्ट हो गया है या सीमा से बाहर है, आदि)
हालांकि कुछ मामलों में नियमित प्रोजेक्टाइल मिसाइलों के गुणों को साझा करने के लिए कहा जा सकता है (उदाहरण के लिए विनाशकारी हो सकता है, बड़े प्रोजेक्ट रडार पर दिखाए जा सकते हैं, आदि)
और फिर मैं कह सकता हूं कि प्रोजेक्टाइल जहाजों के साथ गुण साझा करते हैं (दोनों कदम, टकराव पर ey नुकसान नहीं, रडार पर दिखाई दे सकते हैं, destroyable हो सकता है ...)
और फिर सब कुछ वापस 3 वर्गों की तरह के रूप में समाप्त होता है:
class Entity;
class Object : public Entity;
class Effect : public Entity;
कहाँ एक अच्छा स्थान है व्युत्पन्न बनाने के बीच एक रेखा खींचना कक्षाएं, और झंडे या कुछ के साथ विधि में सुविधाओं को लागू करना?