最近学 C++, 拷贝赋值运算符 返回值完全可以是空。
代码如下, 我总结这只是个函数调用, 没有返回值一般没啥特别的鸟问题。
using namespace std;
class A { public : int Aa; int Ab; public: A(int i, int k):Aa(i), Ab(k) {
}
A & operator ==(const A& rhs)
{
cout << "这儿有一句傻逼代码" << endl;
return *this;
}
A & operator >=(const A& rhs)
{
cout << "这儿有另外一句傻逼代码" << endl;
Aa = rhs.Aa;
Ab = rhs.Ab;
return *this;
}
void operator =(const A& rhs)
{
cout << "这儿有一个拷贝赋值的傻逼代码" << endl;
Aa = rhs.Aa;
Ab = rhs.Ab;
//return *this;
}
}; int main() { std::cout << "Hello World!\n"; A *p1 = new A(1, 3); A *p = new A(2, 3);
A b(331,332);
cout << "B" << b.Aa << endl;
cout << "B" << b.Ab << endl;
b = *p;
cout << "B"<<b.Aa << endl;
cout << "B"<<b.Ab << endl;
}
为啥 我看人家开源项目中的拷贝赋值运算符, 一般都非要返回个引用 有老铁总结下这块吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.