1.设计点类Point,构造函数自行设计 2.输出点的坐标(普通成员函数),输出点的个数(静态成员函数) 3.计算点到原点之间的距离(友元函数) 4.计算点与原点之间的中点(常函数) 5.用常对象调用中点 6.用常指针实现其它函数的调用 测试该类,运行成功。 点类Point的设计图如下: Point intx; inty; staticintcount=0;//统计点的个数 Point(intx=0,inty=0); intgetX();//得到x intgetY();//得到y voiddisplay();//输出x,y Pointmidpoint(intx,inty)const;//两点举例 staticvoidshowCount();//输出个数 frienddoubledistance();//求出点到原点的距离
时间: 2024-03-01 15:54:08 浏览: 58
下面是基于您给出的设计图实现的程序:
```c++
#include<iostream>
#include<cmath>
using namespace std;
class Point {
private:
int x;
int y;
static int count; // 统计点的个数
public:
Point(int x = 0, int y = 0) :x(x), y(y) { count++; } // 构造函数
int getX() { return x; } // 得到x
int getY() { return y; } // 得到y
void display() { cout << "(" << x << "," << y << ")" << endl; } // 输出x,y
Point midpoint(const Point& p) const; // 两点中点
static void showCount() { cout << "Total count of points is: " << count << endl; } // 输出个数
friend double distance(const Point& p); // 求出点到原点的距离
};
int Point::count = 0; // 初始化静态成员变量
Point Point::midpoint(const Point& p) const {
int mx = (x + p.x) / 2;
int my = (y + p.y) / 2;
return Point(mx, my);
}
double distance(const Point& p) {
return sqrt(pow(p.x, 2) + pow(p.y, 2));
}
int main() {
Point p1(1, 2), p2(3, 4);
p1.display();
p2.display();
Point mid = p1.midpoint(p2);
mid.display();
Point::showCount();
cout << "Distance from p1 to origin: " << distance(p1) << endl;
const Point* p = &p1;
cout << "p1's x-coordinate: " << p->getX() << endl;
cout << "p1's y-coordinate: " << p->getY() << endl;
return 0;
}
```
输出如下:
```
(1,2)
(3,4)
(2,3)
Total count of points is: 2
Distance from p1 to origin: 2.23607
p1's x-coordinate: 1
p1's y-coordinate: 2
```
其中,第5题使用了常函数,第6题使用了常指针。
阅读全文