コード :
std::ostream& operator << (std::ostream& out, point p) {
out << "(" << p.x << ", "<< p.y<< ", "<< p.z << ")";
return out;
}
エラー:
'std::ostream& KillThemAll::point::operator<<(std::ostream&, KillThemAll::point)' は 1 つの引数を取る必要があります std::ostream& operator<< (std::ostream& out, point p) { out << "(" << px << ", "<< py<< ", "<< pz << ")"; 戻る;}
実際、コードは « Problems & Solutions In Scientific Computing » の 1 ページ 402 に似ています (ただし、2D ではなく 3D を使用しています)。
あなたの好奇心のために、ここに強力な構造 « point » があります:
struct point{
double x,y,z;
point() { x=y=z=0.0;}
point(double _x, double _y, double _z){this->x=_x, this->y=_y, this->z=_z;}
point operator - (const point& _p) const { return point(x-_p.x, y-_p.y, z-_p.z);}
point operator + (const point& _p) const { return point(x+_p.x, y+_p.y, z+_p.z);}
double operator * (const point& _p) const { return x*_p.x+y*_p.y+z*_p.z;}
point operator * (const double _t) const { return point(_t*x, _t*y, _t*z);}
point operator / (const double _t) const { if(_t!=0) return point(x/_t, y/_t, z/_t);}
};