1
匹配运营商>>我新的C++,我有一些问题,使用2个运营商的predefination。没有在QTCreator
一段时间后,我做的第一个工作,不知怎么的,但我仍然得到一个错误,当我尝试用第二个(>>)函数fromStream,虽然我预定他们下面。 错误是:
core/src/SearchObject.cpp:55: error: no match for 'operator>>' (operand types are 'QDataStream' and 'SearchObject*') out >> this;
我觉得我得到了逻辑错误或什么的,我很困惑。
void SearchObject::toStream(QDataStream in) {
in << this;
}
void SearchObject::fromStream(QDataStream out) {
out >> this;
}
在这里你可以看到一些代码:
SearchObject::SearchObject() {
}
QDataStream& operator >>(QDataStream &in, SearchObject &searchObject) {
//read object from stream
QString medium;
int mediumIndex;
Annotation *ann = new Annotation("", "");
QRect *roi;
QString source;
//skip opening bracket
in.skipRawData(1);
in >> medium;
searchObject.setMedium(medium);
//skip coma
in.skipRawData(2);
in >> mediumIndex;
searchObject.setMediumIndex(mediumIndex);
in.skipRawData(2);
in >> *ann;
searchObject.setAnnotation(ann);
in.skipRawData(2);
in >> *roi;
searchObject.setROI(roi);
in.skipRawData(2);
in >> source;
searchObject.setSourceDataset(source);
in.skipRawData(1);
return in;
}
QDataStream& operator <<(QDataStream &out, SearchObject &searchObject) {
//write object to stream
out << "(" << searchObject.getMedium() << ", "
<< searchObject.getMediumIndex() << ", "
<< searchObject.getAnnotation() << ", "
<< searchObject.getROI() << ", "
<< searchObject.getSourceDataset() << ")";
return out;
}
非常感谢!我的问题现在完全解决了! – Karli