C++ Tablice Obiektów Dziedziczonych

0

Witam.

Mam pewne pytanie. Czy mogę stworzyć jedną dynamiczną tablicę klasy np. Foo i jej pochodnych, np. Fooo, Goo, Gooo itd.
czyli:


class Foo {};
class Fooo : public Foo;
class Goo : public Foo;
class Gooo : public Fooo;

Foo * Array_Obj = new Foo[123];

 

Jeżeli tak to jak odwoływać się do metod poprzez , jeżeli klasa Fooo ma 2 dodatkowe metody które w klasie Foo nie są potrzebne?

Czy mogę zrobić to tak?


Array_Obj[43].GetXParam(); //zakladajac, ze takiej metody w klasie Foo nie ma

 

Czy będzie to też błąd?

0

To będzie błąd. Musisz stworzyć tablicę wskaźników na Foo, potem do każdego przypisać nowo utworzony obiekt klasy bazowej lub jednej z pochodnych i w razie potrzeby rzutować w dół. Z tym, że potrzeba rzutowania w dół może świadczyć o błędzie projektowym.

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