Как в C++ хранить объекты (либо указатели на них) в массиве (std::vector)?
Например наследуя ваши классы от одного базового, и вектор соответственно для этого базового класса делаете. Тогда в него можно класть объект любого класса, унаследованного от базового.
В с# и java вообще все классы онаследованы от базового класса Object, поэтому в контейнер для Object можно объект любого класса положить. Есть ли такой стандартный базовый класс в плюсах сказать к сожалению не могу, не силен в с++. Но можно свой сделать.
А, ну и очевины вариант в стиле Сstd::vector<void*> containsAnyPtr;
containsAnyPtr.push_back( (void*)(new MyClassOne) );
containsAnyPtr.push_back( (void*)(new MyClassTwo) );
containsAnyPtr.push_back( (void*)(new NotMyClass) );
Только вопрос теперь в том, какой именно объект оттуда достанем. Пропадает строгая типизация, которая является фишкой С/С++.
P.S.
Можно немножко осиплюсплюсить:std::vector<void*> containsAnyPtr;
containsAnyPtr.push_back( reinterpret_cast<void*>(new MyClassOne) );
containsAnyPtr.push_back( reinterpret_cast<void*>(new MyClassTwo) );
containsAnyPtr.push_back( reinterpret_cast<void*>(new NotMyClass) );