对象数组的复制构造函数应该如何编写??
我的程序如下
#include<iostream>
#include<cmath>
using namespace std;
class Point{
public:
Point(int xx,int yy);
~Point(){};
Point(Point &p){x=p.x;y=p.y;dis=p.dis;}
friend void order(Point a[],int n);
void show()
{
cout<<"("<<x<<","<<y<<")"<<" "<<"距离:"<<dis<<endl;
}
private:
int x,y;
int dis;
};
Point::Point(int xx,int yy)
{
x=xx;
y=yy;
dis=sqrt(xx*xx+yy*yy);
}
void order(Point a[],int n)
{
for(int i=n;i>=0;i--)//元素逐个比较
for(int k=0;k<i-1;k++)
{
if(a[k].dis>a[k+1].dis)
{
swap(a[k],a[k+1]);//满足条件的数组元素交换
}
}
}
int main()
{
Point a[10]={Point(-1,-3),Point(-2,-4),Point(1,3),Point(7,8),Point(-2,-5),
Point(3,-4),Point(5,3),Point(1,7),Point(6,3),Point(4,4)};
order(a,10);
for(int i=0;i<10;i++)
{
a[i].show();
}
return 0;
}
这是原题:
创建点的对象数组,包含10个点,编写函数对数组元素排序(按照各点距离原点的远近排列),在主函数中输出排序后的点及其距离值(25分)。10个点的坐标分别为: (-1,-3),(-2,-4),(1,3),(7,8),(-2,5),(3,-4),(5,3),(1,7),(6,3),(4,4),请回答问题后,编写此程序。
测试一下这个代码没有毛病啊,你到底有啥问题呢