Tabii ki yapabilirsiniz, sadece böyle bir şekilde tasarım yapmanın mantıklı olup olmadığını merak ediyorum.
Koparma klonu yapıyorum ve sınıf tasarımı yapıyordum. C ++ 'da öğrendiklerimi uygulamak için gerekmeme rağmen kalıtım kullanmak istedim. Sınıf tasarımını düşünüyordum ve şöyle bir şey buldum:
GameObject -> temel sınıf (x ve y ofsetleri gibi veri üyelerinden ve bir SDL_Surface *
MovableObject: GameObject -> soyut sınıf + türetilmiş GameObject sınıfından oluşur (bir yöntem void move () = 0;)
NonMovableObject: GameObject -> boş sınıf ... yapıcı ve yıkıcı dışında hiçbir yöntem veya veri üyesi yok (en azından şimdilik?).
Daha sonra Tileset: NonMovableObject gibi NonMovableObject'ten bir sınıf türetmeyi planlıyordum. Sadece "boş" soyut sınıflar mı yoksa sadece boş sınıflar mı kullanıldığını merak ediyordum ... Bunu yaptığım gibi, sadece sınıflandırma uğruna NonMovableObject sınıfını oluşturuyorum.
Sadece bir koparma klonu yapmak için şeyleri düşünmeyi biliyorum, ama odaklandığım şey oyuna daha az, miras kullanmak ve bir çeşit oyun çerçevesi tasarlamak.
MovableObject
deNonMovableObject
miras kalmayacakları doğru olsa da , her ikisinin de bir yeri vardır; bu nedenle, her ikisi de örneğin bir canavarın amacını, bir nesnenin hareket edip edemeyeceğine bakılmaksızın bir nesneye doğru yönlendirmek isteyen kod tarafından tüketilmelidir.