Wpis z mikrobloga

Mam klasę abstrakcyjną Blob z funkcjami wirtualnymi Blob::fromArray(const QByteArray& raw) i Blob::toByteArray()->QByteArray. Weźmy jej klasę pochodną, Matrix; przeciążyłem operatory QDataStream w taki sposób:

QDataStream& operator<<(QDataStream& stream, const Matrix& in) {
stream << in.toArray();
}
QDataStream& operator>>(QDataStream& stream, Matrix& out) {
QByteArray tmp;
stream >> tmp;
out.fromArray(tmp);
}

Czy dla każdej klasy pochodnej muszę pisać to samo? Skorzystałbym z szablonów, ale nie chcę przeciążać operatorów dla klas innych niż te pochodzące od Blob... jakieś pomysły?

  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach