在c+中创建一个方法+; 我试图在C++中创建一个方法,在这里实现时,看起来像 pointA.distanceTo(pointB)
然而,我在尝试将“pointA”合并到方法中时遇到了困难。目前,我的方法代码如下所示:在c+中创建一个方法+; 我试图在C++中创建一个方法,在这里实现时,看起来像 pointA.distanceTo(pointB),c++,function,methods,C++,Function,Methods,然而,我在尝试将“pointA”合并到方法中时遇到了困难。目前,我的方法代码如下所示: double Point::distanceTo(Point p1) { double xDist=getxCoord()-???; double yDist=getyCoord()-???; return sqrt(xDist*xDist-yDist*yDist); } 我知道getxCoord()和getyCoord()方法只会获取distanceTo(点p1)括号内的对象 但我
double Point::distanceTo(Point p1)
{
double xDist=getxCoord()-???;
double yDist=getyCoord()-???;
return sqrt(xDist*xDist-yDist*yDist);
}
我知道getxCoord()和getyCoord()方法只会获取distanceTo(点p1)括号内的对象
但我不知道如何从“pointA.distanceTo(pointB)”中的pointA获取对象信息
我知道getxCoord()
和getyCoord()
方法将只获取distanceTo(点p1)
括号内的对象
不!当您执行pointA.distanceTo(pointB)时
,参数pointB
成为pointA
的distanceTo
方法中的参数p1
(而不是相反)。因此
应该工作;这里,第一个getxCoord()
将在点A
(或此
指针)上运行,下一个将在点B
上运行
我知道getxCoord()和getyCoord()方法只会获取distanceTo(点p1)括号内的对象
事实上,你把它完全倒过来了。这两个调用将获取此对象或PointA的值,也称为this
。要从p1
获取详细信息,必须调用其上的方法:
double xDist = this->getxCoord() - p1.getxCoord();
double yDist = this->getyCoord() - p1.getyCoord();
这个
是隐式的,您不需要它。上述内容相当于:
double xDist = getxCoord() - p1.getxCoord();
double yDist = getyCoord() - p1.getyCoord();
将函数
distanceTo()
定义为类Point
的成员函数,如果从pointA
调用该函数,则该函数将自动访问pointA
的所有数据成员
因此,您可以为pointB
调用getxCoord()
和getyCoord()
,并直接访问pointA
的X
和Y
坐标
代码:
??? = <代码>p1.getxCoord()和???=
p1.getyCoord()
为什么要使用getxCoord()
来获取点A
的x坐标?如果一个成员函数是在类点中定义的,那么它的坐标不是可以被成员函数直接访问吗?@ShauryaChats是什么让你认为它是直接存储为x和y坐标的,而不是,比如说,与某个其他参考点的距离,所以它必须被计算出来?@legends2k我明白你的意思。
double xDist = getxCoord() - p1.getxCoord();
double yDist = getyCoord() - p1.getyCoord();
double Point::distanceTo(Point p1)
{
double xDist=getxCoord()-p1.getxCoord();
double yDist=getyCoord()-p1.getyCoord();
return sqrt(xDist*xDist-yDist*yDist);
}