Powiedzmy, że mam taki kod (C++):
#include <iostream>
#include <vector>
class IGameObject {
// ...
};
class CPlayer : public IGameObject {
// ...
};
class CEnemy : public IGameObject {
// ...
};
class CGame {
// ...
private:
std::vector<IGameObject*> m_gameObjects;
// ...
};
int main(int argc, char** argv) {
CGame game;
// ...
return 0;
}
Instancja klasy CGame zawiera kontener z obiektami występującymi w grze. Klasa reprezentująca obiekt - IGameObject - posiada co najmniej jedną metodę czysto wirtualną, a więc nie można utworzyć bezpośrednio jej instancji.
Jak powinien wyglądać diagram klas w tym przypadku?
Wersja A:
Wersja B:
Która wersja jest prawidłowa?