【发布时间】:2021-10-11 19:40:15
【问题描述】:
我正在学习 C++ 中的这个指针,它包含类对象的地址。但是我在理解我的代码时遇到了问题。
#include<bits/stdc++.h>
using namespace std;
class Point
{
private:
int x,y;
public:
Point(int x, int y)
{
this->x = x;
this->y = y;
}
Point setX(int x)
{
this->x = x;
return *this;
}
Point setY(int y)
{
this->y = y;
return *this;
}
int getX()
{
return x;
}
int getY()
{
return y;
}
};
int main()
{
Point p(10,20);
cout<<p.getX()<<" "<<p.getY()<<endl;
cout<< p.setX(1000).getX();
return 0;
}
我正在从 setX 返回指针对象。 p.setX 将首先修改 x 的值,然后它将从中返回 object(p) 的副本。 既然这是一个副本,那么为什么我的答案是 p.setX(1000).getx() 中的 1000。由于 setX 会修改原始对象 p 中 x 的值。
【问题讨论】:
-
顺便说一句
#include<bits/stdc++.h> using namespace std;表示一本坏书/老师。你修改 x 然后你创建一个副本,所以副本也有 1000 到 x。 -
好的,这意味着它首先创建一个复制对象,然后从原始 p 复制值。所以这意味着我没有从 setX 返回原始对象,而是返回 p 的副本。如果我错了,请纠正我?