Witam
Do tej pory pisałem w języku C++ proste programy. Teraz chciałbym napisać coś bardziej zaawansowanego. Dlatego zanim zacznę chciałbym poradzić się bardziej doświadczonych w tym względzie osób. Przeczytałem kilka książek i wymyśliłem sobie taką koncepcję:
/////////////////////////////////////Jakiś obiekt
class Obiekt
{
public:
...
void rysuj();
...
}
/////////////////////////////////////Klasa przechowująca obiekty
class Pojemnik
{
public:
…
void dodajObiekt();
std::shared_ptr zwróćObiekt();
….
private:
std::vector<std::shared_ptr<Obiekt>> pojObiektów;
}
void Pojemnik::dodajObiekt()
{
Obiekt temp;
std::shared_ptr<Obiekt> spw1;
… //jakieś tam wypełnianie danymi itp.
spw1 = std::make_shared<temp>;
pojObiektów.push_back(spw1);
}
/////////////////////////////////////Klas która wyświetla obiekty
class InnaKlasa
{
public:
…
void rysujObiekty();
…
}
void InnaKlasa::rysujObiekty()
{
std::shared_ptr<Obiekt> spw1;
spw1 = Pojemnik.zwróćObiekt(index);
spw1->rysuj();
}
Pytania:
Czy w ten sposób nie „zgubi” się po drodze obiekt?
Czy takie podejście jest prawidłowe?