Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objects of different classes in a single vector?

Tags:

c++

class

vector

In my code, I have a set of objects:

class Sphere { ...
class Plane { ...
...

And I need to use a collection of them (they will all have different types) in a vector. How would I add objects of different classes to a vector?

like image 791
Blender Avatar asked Jun 08 '11 04:06

Blender


1 Answers

Sphere and Plane would need a common base type, or your vector would need to be composed of void*'s.

Common base type (better):

class Shape { ... };
class Sphere : public Shape { ... };
class Plane : public Shape { ... };

std::vector<Shape*> shapes;

or void*'s (not great):

std::vector<void*> shapes;
like image 130
DuckMaestro Avatar answered Oct 04 '22 02:10

DuckMaestro