mah*_*yar 4 c++ operator-overloading this
有人可以解释这段代码吗?我不明白第3行:
MyString MyString::operator+(const MyString &str)
{
MyString ss(*this); //----> explain this part
ss += str;
return ss;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
tem*_*def 11
这段代码:
MyString ss(*this);
Run Code Online (Sandbox Code Playgroud)
说"声明一个MyString名为的新变量ss,并将其初始化为*this.".在成员函数内部,this是指向接收器对象(成员函数正在作用的对象)的指针,因此*this是对接收器对象的引用.因此,您可以将其读作"创建一个新MyString的被调用者ss并且是接收者对象的副本".
这里所使用的成语正在实施operator +中的条款operator +=.想法是制作接收器对象operator +=的副本,用于将参数添加到副本,然后返回副本.这是一种广泛使用的技巧,它简化了独立运算符的实现,并实现了相应的复合赋值运算符.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |