А, ну и очевины вариант в стиле С
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) );