gpt4 book ai didi

c++ - 混淆涉及 *this 的 C++ 代码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:38 26 4
gpt4 key购买 nike

有人可以解释这段代码吗?我不明白第 3 行:

MyString MyString::operator+(const MyString &str)
{
MyString ss(*this); //----> explain this part
ss += str;
return ss;
}

谢谢!

最佳答案

这段代码:

MyString ss(*this);

表示“声明一个名为 ssMyString 类型的新变量,并将其初始化为 *this 的拷贝。”在成员函数内部,this是指向接收者对象(成员函数作用的对象)的指针,所以*this是对接收者对象的引用.因此,您可以将其理解为“创建一个名为 ss 的新 MyString,它是接收方对象的拷贝。”

此处使用的成语是根据 operator += 实现 operator +。想法是复制接收者对象,使用operator += 将参数添加到拷贝,然后返回拷贝。这是一种广泛使用的技巧,可以在给定相应复合赋值运算符的实现的情况下简化独立运算符的实现。

希望这对您有所帮助!

关于c++ - 混淆涉及 *this 的 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018510/

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