У меня есть небольшая проблема, когда мой оператор < < не вызывается правильно.Виртуальный << оператор
Это то, что у меня есть:
class SomeInterface
{
friend std::ostream& operator<<(std::ostream& str, const SomeInterface& data);
protected:
virtual void print(ostream& str) const = 0;
};
inline std::ostream& operator<< (std::ostream& o, SomeInterface const& b)
{
b.print(o);
return o;
}
}
телефонный код выглядит примерно так:
SomeInterface* one = new someConcrete();
cout << one;
< < перегруженная функция Я надеялся, что дозвонились на интерфейсе нет, не говоря уже о диспетчеризации до производного класса.
Спасибо ... Я должен был догадаться после того, как он печатает адрес как мусор. –