Problem B: 平面上的点——Point类 (II)
Problem B: 平面上的点——Point类 (II)
Description
在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定。现在我们封装一个“Point类”来实现平面上的点的操作。
根据“append.cc”,完成Point类的构造方法和show()方法,输出各Point对象的构造和析构次序。
接口描述: Point::show()方法:按输出格式输出Point对象。
Input
输入多行,每行为一组坐标“x,y”,表示点的x坐标和y坐标,x和y的值都在double数据范围内。
Output
输出每个Point对象的构造和析构行为。对每个Point对象,调用show()方法输出其值:X坐标在前,Y坐标在后,Y坐标前面多输出一个空格。每个坐标的输出精度为最长16位。输出格式见sample。
C语言的输入输出被禁用。
HINT
思考构造函数、拷贝构造函数、析构函数的调用时机。
#include #include using namespace std;class Point {private: double x, y;public: Point() : x(0), y(0){ cout << "Point : (" << setprecision(16) << x << ", " << setprecision(16) << y << ") is created." << endl; } Point(double a) { x = y = a; cout << "Point : (" << setprecision(16) << x << ", " << setprecision(16) << y << ") is created." << endl; } Point(double a, double b) : x(a), y(b){ cout << "Point : (" << setprecision(16) << x << ", " << setprecision(16) << y << ") is created." << endl; } Point(const Point &ant) { x = ant.x, y = ant.y; cout << "Point : (" << setprecision(16) << x << ", " << setprecision(16) << y << ") is copied." << endl; } void show() { cout << "Point : (" << setprecision(16) << x << ", " << setprecision(16) << y << ")" << endl; } ~Point() { cout << "Point : (" << setprecision(16) << x << ", " << setprecision(16) << y << ") is erased." << endl; }};int main(){ char c; double a, b; Point q; while(std::cin>>a>>c>>b) { Point p(a, b); p.show(); } Point q1(q), q2(1); q1.show(); q2.show(); q.show();}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~