Сериализация Qt. QDataStream & operator << для базового класса QPolygonF - PullRequest
1 голос
/ 27 февраля 2012

Имея MyClass: QPolygonF Я хотел бы создать

void bin_write(QDataStream & out ) const
{
   out << (BASE CLASS QPOLYGONF)*this  ??
}

, который вызывает оператор перегрузки

QDataStream& operator<< ( QDataStream & stream, const QPolygonF & polygon )

Я не знаю, как сказать ему вызвать этот метод.

1 Ответ

1 голос
/ 27 февраля 2012

Просто сделайте:

out << *this;

Здесь нет необходимости в явном повышении (здесь, как обычно), если ваш подкласс также не определяет собственную перегрузку operator<< (оператор вставки) с помощью QDataStream.

Если ваш класс предоставляет перегруженные operator<< и вам нужно использовать оператор вставки QPolygonF (например, чтобы помочь реализовать оператор << для вашего подкласса), тогда вы можете сделать: </p>

out << static_cast<const QPolygonF&>(*this);
...