Tam liste http://doc.qt.io/qt-4.8/datastreamformat.html adresinde mevcuttur. Ayrıca, < < ve >> operatörlerini aşırı yükleyerek kendi özel türlerimize destek ekleyebiliriz. İşte
class Painting
{
public:
Painting() { myYear = 0; }
Painting(const QString &title, const QString &artist, int year) {
myTitle = title;
myArtist = artist;
myYear = year;
}
void setTitle(const QString &title) { myTitle = title; }
QString title() const { return myTitle; }
...
private:
QString myTitle;
QString myArtist;
int myYear;
};
QDataStream &operator<<(QDataStream &out, const Painting &painting);
QDataStream &operator>>(QDataStream &in, Painting &painting);
biz < < operatörü uygulamak nasıl oluyor: İşte QDataStream ile kullanılabilen özel bir veri türünün tanımı var çıkışına için
QDataStream &operator<<(QDataStream &out, const Painting &painting)
{
out << painting.title() << painting.artist()
<< quint32(painting.year());
return out;
}
bir Boyama, biz sadece çıkış iki Qstringleri ve Bir quint32. İşlevin sonunda akışı döndürürüz. Bu, bir çıkış akışı olan < < operatör zincirini kullanmamıza izin veren yaygın bir C++ deyimidir. Örneğin:
< painting1 < < < üzerinden painting2 < < painting3;
QDataStream &operator>>(QDataStream &in, Painting &painting)
{
QString title;
QString artist;
quint32 year;
in >> title >> artist >> year;
painting = Painting(title, artist, year);
return in;
}
Bu dan: Jasmin Blanchette tarafından Qt 4 ile C++ GUI Programlama Mark Summerfield
It
operatör uygulanması >>() operatörü < <() benzer olduğunu desteklenen tip listesinin eksik olduğunu bana şaşırttı: muhtemelen sadece çapraz platform veya sabit olan serileştirme türlerine gönderme yapıyor. Örneğin, 'QSet' listede yok. –
'QGeoCoordinate' bir başka örnektir. –