kau*_*hik 4 c++ operator-overloading
我已经问过一个关于这个赋值运算符重载的问题.我可能会问一个愚蠢的问题.对不起.
我的班级声明是这样的:
class Circle
{
public:
Circle();
Circle(const Circle &);
Circle(unsigned short rad);
unsigned short getRadius() const { return itsradius; }
void setRadius(unsigned short rad) { itsRadius = rad; }
private:
unsigned short itsRadius:
};
Run Code Online (Sandbox Code Playgroud)
我的班级定义:
Circle::Circle()
{
itsRadius = 0;
}
Circle::Circle(unsigned short rad)
{
itsRadius = rad;
}
Circle::Circle(const Circle & rhs)
{
itsRadius = rhs.getRadius();
}
Run Code Online (Sandbox Code Playgroud)
我正在重载赋值运算符,如下所示:
SimpleCircle & SimpleCircle::operator=(const SimpleCircle & rhs)
{
itsRadius = rhs.getRadius();
return *this;
}
Run Code Online (Sandbox Code Playgroud)
当我们处理当前对象如"itsRadius = rhs.getRadius()"时,当前对象的半径将被更改,那么,返回"*this"的需要是什么?这个函数可以重写为空格吗?它有什么问题吗?或者它只是一个标准?
Vin*_*Pii 10
这是一个很好的约定,可以与operator=内置类型的行为保持一致.
使用内置类型,您可以执行以下操作:
int a, b, c;
// ...
a = b = c = 10;
Run Code Online (Sandbox Code Playgroud)
如果不返回引用*this,则类型不支持赋值链.
| 归档时间: |
|
| 查看次数: |
5210 次 |
| 最近记录: |