我有兩個不同的運算符重載。由於某種原因,它給錯誤。 如果我刪除它,它不會顯示任何錯誤。我可以知道爲什麼嗎?運算符超載的錯誤
我可以結合嗎?
這是用於在屏幕上打印。
ostream& operator<<(ostream &out, const Point &p) {
return out << "[" << setw(4) << p.getX() << setw(1) << "," << setw(4) << p.getY() << "] " << setprecision(3) << p.getScalarValue() << endl;
}
這是用於在文本文件上打印。
ofstream& operator<<(ofstream &out, const Point2D &p){
return out << "[" << setw(4) << p.getX() << setw(1) << "," << setw(4) << p.getY() << "] " << setprecision(3) << p.getScalarValue() << endl;
}
錯誤:
Point.cpp:91:147: error: invalid initialization of reference of type ‘std::ofstream& {aka std::basic_ofstream&}’ from expression of type ‘std::basic_ostream::__ostream_type {aka std::basic_ostream}’
你在第二個定義中寫了'ofstream'而不是'ostream'。 – avakar
91線上有什麼? – xiaoyi
你想寫一個'ofstream'版本,'Point2D'版本,還是兩者? – juanchopanza