1. 类、方法和重载操作符的设计 设计控制台应用程序,声明一个几何点类Point,其由X和Y坐标组

1. 类、方法和重载操作符的设计
设计控制台应用程序,声明一个几何点类Point,其由X和Y坐标组成,该类包含如下成员:
(1)私有字段:double 类型的_x和_y;
(2)属性X和属性Y
(3)构造函数,包含不带参数的构造函数和带有参数的构造函数
(4)析构函数,其中简单输出X和Y坐标
(5)重载操作符+,-,*,/,使得操作Point可以像操作一般的值类型一样,其中+将两个Point的X和Y分别相加,-将两个Point的X和Y分别相减,*将一个Point的X和Y与一个浮点数分别相乘(注意这里有两个版本,可以将浮点数与Point相乘,也可以将Point与浮点数相乘,结果都一样),/将一个Point的X和Y与一个浮点数分别相除。
(6)重载操作符==和!=,注意这两个要成对重载,不能只重载一个。
(7)实现索引器,使得可以像访问数组一般访问Point,索引为0时访问X,索引为1时访问Y。
(8)实现方法toString,输出X和Y坐标。
(9)实现方法dist,求两个点之间的距离, 和 之间的距离公式为

该方法包括两个版本,一个是静态方法,接受两个Point作为参数,另一个是非静态方法,接受一个Point作为参数,提示:使用Math类里面方法求开方。
已给出部分代码,代码在Program4-part.cs中,请将代码补全并在Main函数中测试。

ms要用到友元啊,// 1.cpp : 定义控制台应用程序的入口点。//include "stdafx.h"include <iostream>include <math.h>include <Windows.h>using namespace std;class Point{private: double x,y;public: Point(double q,double w) { x=q; y=w; cout<<"Point is :\n"<<endl; cout<<"("<<x<<","<<y<<")"<<endl; } friend class Line;};class Line{private:double a,b,c;public: Line(double a,double b,double c) { cout<<"Line is :\n"<<endl; cout<<a<<"x+"<<b<<"y+"<<c<<"=0"<<endl; } double Value(Point m) { double d; d=fabs(a*m.x+b*m.y+c)/(sqrt(a*a+b*b)); return d; }};int _tmain(int argc, _TCHAR* argv[]){ Point point(5,6); Line line(1,9,6); double dis; dis=line.Value(point); cout<<dis<<endl; Sleep(-1); return 0;}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答