Wpis z mikrobloga

Czy da się stworzyć w c++ listę złożoną z obiektów różnych klas? Coś w stylu:
`class Shape{
public:
int a;
};

class Sphere : public Shape{
public:
int b;
};

class Plane : public Shape{
public:
int c;
};

int main()
{
vector List;
List.pushback(new Sphere);
List.push
back(new Plane);

List[0]->b=5;
cout<b<
  • 9
@Snori: Na pytanie postawione stricte w ten sposób jedną odpowiedzią jest że język tego nie umożliwia.
Dlatego robi się listę wskaźników na obiekty polimorficzne. Jak sobie z nimi poradzić? Poprzez dynamiczne rzutowanie:
Sphere* s = dynamic_cast(List[0]);
if( s ) // sprawdzenie czy s != nullptr, które dynamic cast zwraca gdy obiekt nie jest Sphere

{
    s->b = 5;
}

Jeżeli masz dużo klas i nie chciałbyś wszystkich sprawdzać ifami, to stosuje