
哪位大神帮忙看看这段c++代码?
#include<iostream>#include<math.h>usingnamespacestd;classPoint{public:Point();Point(d...
#include<iostream>
#include<math.h>
using namespace std;
class Point
{
public:
Point();
Point(double x1,double y1);
void print();
friend double getDistance(Point a,Point b);
private:
double x,y;
};
Point::Point()
{
x=1;
y=1;
};
Point::Point(double x1,double y1)
{
x=x1;
y=y1;
}
double getDistance(Point a,Point b)
{
return sqrt((a.x-b.x)^2+(a.y-b.y)^2);
}
void Point::print()
{
cout<<getDistance(Point a,Point b)<<endl;
}
void main()
{
double x1,y1;
cin>>x1>>y1;
Point a;
Point b(x1,y1);
getDistance( a, b);
Point::print();
} 展开
#include<math.h>
using namespace std;
class Point
{
public:
Point();
Point(double x1,double y1);
void print();
friend double getDistance(Point a,Point b);
private:
double x,y;
};
Point::Point()
{
x=1;
y=1;
};
Point::Point(double x1,double y1)
{
x=x1;
y=y1;
}
double getDistance(Point a,Point b)
{
return sqrt((a.x-b.x)^2+(a.y-b.y)^2);
}
void Point::print()
{
cout<<getDistance(Point a,Point b)<<endl;
}
void main()
{
double x1,y1;
cin>>x1>>y1;
Point a;
Point b(x1,y1);
getDistance( a, b);
Point::print();
} 展开
展开全部
有如下错误:
(1)
double getDistance(Point a,Point b)
{
return sqrt((a.x-b.x)^2+(a.y-b.y)^2); //error
}
因为^在C/C++中是异或运算符,而且要求操作数必须是整数.x,y是浮点数!
向求平方用math.h中的pow( a.x -b.x , 2)
(2)
void Point::print()
{
cout<<getDistance(Point a,Point b)<<endl; //error
}
这里Point a, Point b是进行变量定义,但定义的位置是实参传递的位置!
这在C++中是不允许的,可以改成如下形式
void Point::print()
{
Point a,Point b;
cout<<getDistance( a , b )<<endl; //OK
}
或者
void Point::print()
{
cout<<getDistance( Point( ),Point( ); )<<endl; //OK
}
(3)
Point::print(); //error
你这种使用方式只有在print是public且为static时才可用。
可以修改为
a.print( );
或
b.print( );
明白了吗,宝贝。有什么问题可以追问
展开全部
return sqrt((a.x-b.x)^2+(a.y-b.y)^2); 没有这个运算符^,只能老老实实写* 或调用函数pow
double getDistance(Point a,Point b)的参数应该用引用 double getDistance(Point &a,Point &b)
print这个成员函数没有意义,不如直接在转函数里用cout<<getDistance(a,b)输出
double getDistance(Point a,Point b)的参数应该用引用 double getDistance(Point &a,Point &b)
print这个成员函数没有意义,不如直接在转函数里用cout<<getDistance(a,b)输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询