Programowanie obiektowe - referencja do obiektu.

0

Witam.
Mam do napisania projekt w którym zawiera się klasa Świat i Organizm. Klasa Świat zawiera tablice Organizmów. Każdy organizm ma mieć referencje na świat w którym się znajduje. Jak mam to zrobić? Bo nie do końca rozumiem. Wiem że pewnie banalny kłopot, ale krótko programuję i proszę o trochę wyrozumiałości. Z góry dziękuje :)

0
struct Organism;

struct World
{
	World() { lifeMatrix.emplace_back(*this); }
	vector<Organism> lifeMatrix;
};

struct Organism
{
	Organism(World& world) : myWorld(world) {}
	World& myWorld;
};
0

A jeżeli z z Organizmu dziedziczą inne klasy. np Zwierze, Roślina to wystarczy w konstruktorze organizmu ustawiać world? Bo jeśli tak zrobię i stworzę obiekt Zwierze to visual mi narzeka, że konstruktor Zwierze nie przyjmuje parametru Swiat. Tak jakby konstruktor zwierzęcia przysłaniał kontruktor Organizmu z którego dziedziczy. Jak zrobić to najoptymalniej>

0

Przed C++11 konstruktory się nie dziedziczą, więc trzeba tworzyć odpowiedni w klasie pochodnej:

struct Animal : public Organism
{
	Animal(World& world) : Organism(world) {}
};

Od C++11 wystarczy

struct Animal : public Organism
{
	using Organism::Organism;
};

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