sobrecarregando '<<' com herança e polimorfismo?
A seguir está uma amostra aproximada de como o código se parece, a questão é como posso ter o DerivedOne e o DerivedTwo com um operador << sobrecarregado, mas armazenando esses objetos em um vetor de Base *.
Quanto ao que quero alcançar; Eu quero ser capaz de percorrer o vetor de objetos e gerar as informações para as quais eu digo no DerivedOne e DerivedTwo.
vector<Base*> objects;
class Base
{
private:
object Data
public:
object getData() { return Data; }
};
class DerivedOne : public Base
{
}
class DerivedTwo : public Base
{
}
Agora eu sei que existe isso, mas não vai funcionar para os meus propósitos.
friend ostream &operator<<(ostream &stream, Object object)
{
return stream << "Test" << endl;
}