提问人:Deepak soni 提问时间:8/7/2021 最后编辑:MatDeepak soni 更新时间:8/7/2021 访问量:54
关于 C++ 中的这个指针 [重复]
Regarding this Pointer in C++ [duplicate]
问:
我正在学习 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 的值。
答:
0赞
eerorika
8/7/2021
#1
我正在从 setX 返回指针对象
不,你不是。您返回的是类的实例。Point
为什么我的答案是1000
因为您返回其成员值为 1000 的对象的副本。
评论
0赞
Deepak soni
8/7/2021
好的,这意味着在 setX 中,将创建 Point 类的对象,并从原始对象复制值。这就是为什么 getX() 给出的答案是 1000。
评论
#include<bits/stdc++.h> using namespace std;