【发布时间】:2015-04-02 23:27:24
【问题描述】:
在我的面向对象 c++ 课程中,我们必须编写我放在下面的这个类。
Point
class Point{
public:
Point( double x = 0, double y = 0 );
double getX() const;
double getY() const;
Point & setX( double x ); // mutator, returning reference to self
Point & setY( double y );
const Point & output() const;
double distance( const Point & other ) const;
private:
double xPoint, yPoint;
}; // class Point
我的问题是...我找不到任何关于函数 setX、setY 和 output 应该如何工作的信息。它们与类本身的类型相同,我已经写了我希望它们看起来像下面的内容。谁能告诉我我做错了什么以及这些功能如何工作的更多细节? setX 函数应该改变对象中的 xPoint,setY 应该对 yPoint 做同样的事情,而 output 应该简单地输出它们。
Point & Point::setX( double x )
{
xPoint = x;
}
Point & Point::setY( double y )
{
Ypoint = y;
}
const Point & Point::output() const
{
cout << xPoint << yPoint;
}
【问题讨论】:
-
只需在 setX 和 setY 的末尾添加一个 return
*this:您正在返回对您的类的引用,例如,您可以这样做:p0.setX(1.23).setY(3.45),当然还有 @987654325 @Point 的一个实例。在输出函数中,在 xPoint 和 yPoint 之间放置一个分隔符,就像一个空格。你说They are the same type as the class itself:不要将变量类型与函数/方法返回的类型混淆:这些方法返回它们所属类的实例。 -
您在
setY中还有一个小错字:应该是yPoint,而不是Ypoint。 C++ 区分大小写。 -
非常感谢!您能否详细说明为什么将 *this 指针用于这些函数?