Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在QDataStream中序列化类_C++_Qt - Fatal编程技术网

C++ 在QDataStream中序列化类

C++ 在QDataStream中序列化类,c++,qt,C++,Qt,我正试图用QDataStream保存3个QVector和一个int 我超载了操作员我相信这句话: out << this; 这将打印指针值,*这将打印所需的输出。非常感谢。它正在工作,数据的加载也在工作。 #include "clouddata.h" #include <QFile> CloudData::CloudData() { } void CloudData::setPolyVector(QVector<QPoint> pVec) { m

我正试图用QDataStream保存3个QVector和一个int

我超载了操作员我相信这句话:

out << this;

这将打印指针值,*这将打印所需的输出。

非常感谢。它正在工作,数据的加载也在工作。
#include "clouddata.h"
#include <QFile>

CloudData::CloudData()
{
}

void CloudData::setPolyVector(QVector<QPoint> pVec)
{
    m_polyVector = pVec;
}

void CloudData::setPathPointVector(QVector<QPoint> ppVec)
{
    m_pathPointVector = ppVec;
}

void CloudData::setSuppPointVector(QVector<QPoint> spVec)
{
    m_supPointVector = spVec;
}

void CloudData::setRandSeed(int randSeed)
{
    m_randSeed = randSeed;
}

bool CloudData::save(QString filename)
{
    QFile file(filename);
    if(!file.open(QIODevice::WriteOnly))
        return false;

    QDataStream out(&file);
    out.setVersion(QDataStream::Qt_4_8);

    out << this;
    file.close();
    return true;
}
void CloudWidget::saveCloudData()
{
    QString filename = QFileDialog::getSaveFileName(this,tr("Save cloud clutter data"),
                       "/Users/Admin/Downloads/", "Cloud Clutter Data (*.ccd)");
    m_cloudData.setPolyVector(m_polygon);
    m_cloudData.setPathPointVector(m_pathPointVector);
    m_cloudData.setSuppPointVector(m_supPointVector);
    m_cloudData.save(filename);
}
out << this;
out << *this;
#include <QFile>
#include <QTextStream>
#include <QDebug>

class StreamTest
{
    public:
        StreamTest() { var1 = "var1"; var2 = "var2"; }
    QString var1;
    QString var2;

    friend QTextStream& operator <<(QTextStream &textStream, const StreamTest &st)
    {
        textStream << st.var1 << st.var2;
        return textStream;
    }

    void save(void)
    {
        QString str_1;
        QTextStream text_stream_1(&str_1);
        text_stream_1 << this;
        qDebug() << str_1;

        QString str_2;
        QTextStream text_stream_2(&str_2);
        text_stream_2 << *this;
        qDebug() << str_2;
    }
};

int main(int argc, char *argv[])
{
    StreamTest st;
    st.save();
}
"0x7fff18070c10"
"var1var2"