แน่นอนคุณทำได้ฉันแค่สงสัยว่ามันมีเหตุผลในการออกแบบในลักษณะนี้
ฉันทำโคลน breakout และกำลังออกแบบคลาส ฉันต้องการใช้การสืบทอดแม้ว่าฉันไม่จำเป็นต้องใช้สิ่งที่ฉันเรียนรู้ใน C ++ ฉันกำลังคิดเกี่ยวกับการออกแบบชั้นเรียนและเกิดขึ้นกับสิ่งนี้:
GameObject -> ชั้นฐาน (ประกอบด้วยสมาชิกข้อมูลเช่นชดเชย X และ Y และเวกเตอร์ของ SDL_Surface * a
MovableObject: GameObject -> ระดับนามธรรม + ชั้นเรียนมาของ GameObject (วิธีหนึ่งย้ายเป็นโมฆะ () = 0;)
NonMovableObject: GameObject -> คลาสที่ว่างเปล่า ... ไม่มีเมธอดหรือสมาชิกข้อมูลอื่นนอกจากตัวสร้างและ destructor (อย่างน้อยตอนนี้หรือไม่)
ต่อมาฉันวางแผนที่จะรับคลาสจาก NonMovableObject เช่น Tileset: NonMovableObject ฉันแค่สงสัยว่าคลาสนามธรรม "ว่างเปล่า" หรือแค่คลาสว่างมักใช้ ... ฉันสังเกตว่าวิธีที่ฉันทำเช่นนี้ฉันแค่สร้างคลาส NonMovableObject เพื่อประโยชน์ในการจัดหมวดหมู่
ฉันรู้ว่าฉันคิดมากสิ่งต่าง ๆ เพียงเพื่อทำการโคลน breakout แต่โฟกัสของฉันจะน้อยกว่าในเกมและเพิ่มเติมเกี่ยวกับการใช้การสืบทอดและการออกแบบเฟรมเวิร์กของเกม
MovableObject
มิได้NonMovableObject
สามารถสืบทอดจากแต่ละอื่น ๆ พวกเขาทั้งสองมีสถานที่; เช่นนี้พวกเขาทั้งสองจะต้องสิ้นเปลืองด้วยรหัสซึ่งเช่นต้องการนำเป้าหมายของสัตว์ประหลาดไปยังวัตถุโดยไม่คำนึงว่าวัตถุนั้นอาจเคลื่อนที่หรือไม่