Point类的p的X,Y值赋值后成功输出了
但Circle类下的center中X,Y赋值后却没有成功输出,输出的是“-858993460"
求助各路大神这到底是怎么回事
代码如下:
#include<iostream>
using namespace std;
#include<string>
//点类
class Point
{
public:
//设置x
void setX(int x)
{
m_X = x;
}
//获取x
int getX()
{
cout << "m_X="<< m_X <<endl;
return m_X;
}
//设置y
void setY(int y)
{
m_Y =y ;
}
int getY()
{
return m_Y;
}
private:
int m_X;
int m_Y;
};
//点和圆的关系案例
//圆类
class Circle
{
public:
//设置半径
void setR(int r)
{
m_R = r;
}
//获取半径
int getR()
{
return m_R;
}
//设置圆心
void setcenter(Point center)
{
center=m_Center;
}
//获取圆心
Point getcenter()
{
return m_Center;
}
private:
int m_R;//半径
Point m_Center;
};
void isInCircle(Circle &c,Point &p)//用引用的方式做传递
{
//计算两点之间距离的平方
int d1 = (c.getcenter().getX()-p.getX() )*( c.getcenter().getX() -p.getX() )+
(c.getcenter().getY() - p.getY()) *(c.getcenter().getY() -p.getY());
//计算半径的平方
int d2 = c.getR() * c.getR();
cout << "p.getX()=" << p.getX() << endl;
cout << "p.getY()=" << p.getY() << endl;
cout << "c.getR() =" << c.getR() << endl;
cout << "c.getcenter().getY()=" << c.getcenter().getY() << endl;
cout << "c.getcenter().getX()=" << c.getcenter().getX() << endl;
//判断关系
if (d1 == d2 )
{
cout << "点在圆上" << endl;
}
else if (d1 > d2)
{
cout << "点在圆外" << endl;
}
else
{
cout << "点在圆内" << endl;
}
}
int main()
{
//创建圆
Circle c;
c.setR(4);
Point center;
center.setX(5);
center.setY(6);
c.setcenter(center);
//创建点
Point p;
p.setX(7);
p.setY(8);
//判断关系
isInCircle(c, p);
system("pause");
return 0;
}
程序运行结果如下图: