在我的面向对象的C++课程中,我们必须编写这个类,我已经在下面提到了。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和输出如何工作的信息。它们与班级本身是同一类型的,我写了我期望它们看起来像下面的内容。任何人都可以告诉我我做错了什么,也许有关这些功能如何工作的更多细节? setX函数应该改变对象中的xPoint,setY应该对yPoint执行相同的操作,输出应该简单地输出它们。
Point & Point::setX(double x)
{
xPoint = x;
}
Point & Point::setY(double y)
{
Ypoint = y;
}
const Point & Point::output() const
{
cout << xPoint << yPoint;
}
只需在setX和setY的末尾添加一个返回'* this'即可:例如,您可以这样做:'p0.setX(1.23).setY(3.45)' ,当然'p0'是Point的一个实例。在输出函数中,在xPoint和yPoint之间放置一个分隔符,就像一个空格。你说'它们和类本身是一样的类型':不要将变量类型与函数/方法返回的类型混淆:那些方法返回它们所属的类的一个实例。 – Antonio 2015-04-02 23:30:25
'setY'中还有一个小错字:它应该是'yPoint',而不是'Ypoint'。 C++区分大小写。 – 5gon12eder 2015-04-02 23:34:35
非常感谢!你能详细说明为什么把这个指针用于这些函数吗? – 2015-04-02 23:39:51