Problem E: 平面上的点——Point类 (II)
生活随笔
收集整理的這篇文章主要介紹了
Problem E: 平面上的点——Point类 (II)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
在數學上,平面直角坐標系上的點用X軸和Y軸上的兩個坐標值唯一確定?,F在我們封裝一個“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語言的輸入輸出被禁用。
Sample Input
1,2 3,3 2,1Sample Output
Point : (0, 0) is created. Point : (1, 2) is created. Point : (1, 2) Point : (1, 2) is erased. Point : (3, 3) is created. Point : (3, 3) Point : (3, 3) is erased. Point : (2, 1) is created. Point : (2, 1) Point : (2, 1) is erased. Point : (0, 0) is copied. Point : (1, 1) is created. Point : (0, 0) Point : (1, 1) Point : (0, 0) Point : (1, 1) is erased. Point : (0, 0) is erased. Point : (0, 0) is erased.HINT
思考構造函數、拷貝構造函數、析構函數的調用時機。
Append Code
#include<iostream> #include<iomanip> using namespace std; class Point { private: ????double x,y; public: ????Point(){x=0,y=0;cout<<setprecision(16)<<"Point : (0, 0) is created.\n";} ????Point(double a,double b){x=a,y=b;cout<<setprecision(16)<<"Point : ("<<x<<", "<<y<<") is created.\n";} ????void show(){cout<<setprecision(16)<<"Point : ("<<x<<", "<<y<<")\n";} ????~Point(){cout<<setprecision(16)<<"Point : ("<<x<<", "<<y<<") is erased.\n";} ????Point(Point &a){x=0,y=0;cout<<setprecision(16)<<"Point : (0, 0) is copied.\n";} ????Point(int a){x=a,y=a;cout<<setprecision(16)<<"Point : ("<<x<<", "<<y<<") is created.\n";} }; 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(); }轉載于:https://www.cnblogs.com/TogetherLaugh/p/6544632.html
總結
以上是生活随笔為你收集整理的Problem E: 平面上的点——Point类 (II)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转Android之加速度传感器的使用,
- 下一篇: webpack基础入门