相关疑难解决方法(0)

什么是复制和交换习语?

这个成语是什么,什么时候应该使用?它解决了哪些问题?当使用C++ 11时,成语是否会改变?

虽然在许多地方已经提到过,但我们没有任何单一的"它是什么"问题和答案,所以在这里.以下是前面提到的地方的部分列表:

c++ c++-faq copy-constructor assignment-operator copy-and-swap

1907
推荐指数
5
解决办法
34万
查看次数

为什么赋值运算符会返回对象的引用?

我正在修改我的C++,我正在处理运算符重载,特别是"="(赋值)运算符.我在网上看到并且遇到了讨论它的多个主题.在我自己的笔记中,我把所有的例子都记下来了

class Foo
{
    public:  
        int x;  
        int y;  
        void operator=(const Foo&);  
};  
void Foo::operator=(const Foo &rhs)
{
    x = rhs.x;  
    y = rhs.y;  
}
Run Code Online (Sandbox Code Playgroud)

在我在网上找到的所有参考文献中,我注意到操作符返回对源对象的引用.为什么返回对象的引用的正确方法而不是什么都没有?

c++ operator-overloading return-type assignment-operator

19
推荐指数
3
解决办法
1万
查看次数

为什么C++赋值运算符需要返回类型?

我在看C++类的赋值运算符:

A& operator= (const A& x) {
  // do something 
  return *this;
}
Run Code Online (Sandbox Code Playgroud)

但是,为什么我们需要返回*这个?因为如果我们打电话

a = bb是operator =的参数,这指向a.//通过从b复制,做了一些已经改变了a的正确内容的东西.如何获得返回类型?这次回归的收件人是什么?

或者,这是为了促进a = b = c?

请指教..谢谢!

c++

1
推荐指数
1
解决办法
118
查看次数