c++ - c++:类类型引用运算符=用法
问题描述
这是我的第一篇文章,如果格式不好,请理解 X)
所以,在我的课堂上,我需要使用 operator= 函数来使一个类对象等于同一个类的第二个对象。
class Car
{
private :
int a;
int b;
public :
void set(int x, int y)
{a = x;
b = y;
}
void output()
{cout << a << " " << b << endl;
}
Car & operator=(const Car & carB)
{set(int c, int d);
}
};
using namespace std;
int main()
{
Car car1(1, 2);
Car car2;
car2=car1;
car2.output();
return 0;
}
我知道 Car & operator=(const Car & carb) 函数允许我使 car2 等于 car 1。但是,我不太了解这里的函数类型。为什么函数不是void?这段代码中的参考符号(两者)有什么作用?
我正在学习第一个计算机语言的第二个季度。请帮忙!谢谢!:]
解决方案
这被称为assignment operator
,您不需要实现它,因为它默认存在。如果您在类中有指针,您可以实现自己的指针assignment operator
并copy constructor
进行深拷贝而不是浅拷贝。
引用符号表示按引用返回,它允许函数调用位于调用的左侧,并允许像A = B = C
.
最后一件事......你的代码assignment operator
是错误的。它应该是这样的:
set(carB.a, carB.b);
推荐阅读
- sql-server - 限制重复记录同时插入表中
- c# - xamarin 形成 HttpClient 不完整的 Json
- wordpress - 如何将功能与元框按钮相关联?
- excel - 使用 vba 删除活动的 x 组合框
- deep-learning - 如何在测试集上稳定 CNN 的性能?
- excel - 即使excel vba中间有空白单元格,也能找到最后一个非空单元格中包含的值
- solidity - 如何在solidity上返回嵌套数组
- html - 如何创建一个指向我创建的另一个页面的按钮?
- ansible - 通过使用 ansible-facts,我如何识别所有尚未挂载的磁盘然后挂载?
- hive - 如何从 Hive 外部 Druid 表中订购查询结果?