这是我的第一篇文章,请理解格式是否错误X)
所以,在我的课堂上,我需要使用operator = function来使一个类对象等于同一个类的第二个对象。
Routing Error
undefined method default_locale= for nil:NilClass
我明白Car& operator =(const Car& carb)函数允许我使car2等于car 1.但是,我不太了解这里的函数类型。 为什么功能不是无效的?参考符号(两者)在这段代码中做了什么?
我是第一季度的第一个计算机语言。请帮忙! 谢谢! :]
答案 0 :(得分:2)
这称为assignment operator
,您不需要实现它,因为它默认存在。如果您在课程中有指针,则可以实施自己的assignment operator
和copy constructor
来执行深层复制而不是浅层复制。
引用符号表示按引用返回,允许函数调用位于调用的左侧,并允许级联赋值,如A = B = C
。
最后一件事...... assignment operator
中的代码是错误的。它应该是这样的:
set(carB.a, carB.b);
答案 1 :(得分:0)
函数的类型不是void,因为C ++允许这样的语句:
A = B = C;
执行此语句后,所有三个变量都具有相同的值。换句话说,
A = (B = C);
要求B=C
返回与A
相同类型的内容。
关于参考符号('%')的作用,请在教科书中查找。