这个成语是什么,什么时候应该使用?它解决了哪些问题?当使用C++ 11时,成语是否会改变?
虽然在许多地方已经提到过,但我们没有任何单一的"它是什么"问题和答案,所以在这里.以下是前面提到的地方的部分列表:
c++ c++-faq copy-constructor assignment-operator copy-and-swap
在即将推出的C++ 0x标准中,当在移动构造函数中/期间抛出异常时会发生什么?
原始物体会保留吗?或者是处于未定义状态的原始对象和移动对象?语言提供的保证是什么?
我已经问过一个关于这个赋值运算符重载的问题.我可能会问一个愚蠢的问题.对不起.
我的班级声明是这样的:
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 = …