gpt4 book ai didi

c++ - 关于c++中 "this"指针的问题

转载 作者:可可西里 更新时间:2023-11-01 17:04:57 25 4
gpt4 key购买 nike

我得到了一个类,其中包含私有(private)的 int 变量 x 和 y,以及一个运算符重载函数,

class Bag{
private:
int x;
int y;
public:
Bag();
~Bag();
//.......
//.....etc
};


Bag operator+ (Bag new) const{
Bag result(*this); //what does this mean?
result.x += new.x;
result.y += new.y;
}

“Bag result(*this);”有什么作用?那里?。

最佳答案

Bag result(*this) 创建调用运算符函数的对象的拷贝。

例子如果有:

sum = op1 + op2; 

然后 result 将是 op1 的拷贝。

由于 operator+ 函数对其操作数求和并返回总和,我们需要一种方法来访问操作数 op1,这是通过 this 指针完成的。

或者我们可以这样做:

Bag result;
result.x = (*this).x + newobj.x; // note you are using new which is a keyword.
result.y = (*this).y + newobj.y; // can also do this->y instead
return result;

关于c++ - 关于c++中 "this"指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2532105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com