Polimorfizm na diagramie klas

0

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:
user image

Wersja B:
user image

Która wersja jest prawidłowa?

2

A

1 użytkowników online, w tym zalogowanych: 0, gości: 1