c ++:类类型引用operator = usage

时间:2018-06-02 23:37:01

标签: c++ operator-keyword

这是我的第一篇文章,请理解格式是否错误X)

所以,在我的课堂上,我需要使用operator = function来使一个类对象等于同一个类的第二个对象。

Routing Error
undefined method default_locale= for nil:NilClass

我明白Car& operator =(const Car& carb)函数允许我使car2等于car 1.但是,我不太了解这里的函数类型。 为什么功能不是无效的?参考符号(两者)在这段代码中做了什么?

我是第一季度的第一个计算机语言。请帮忙! 谢谢! :]

2 个答案:

答案 0 :(得分:2)

这称为assignment operator,您不需要实现它,因为它默认存在。如果您在课程中有指针,则可以实施自己的assignment operatorcopy constructor来执行深层复制而不是浅层复制。

引用符号表示按引用返回,允许函数调用位于调用的左侧,并允许级联赋值,如A = B = C

最后一件事...... assignment operator中的代码是错误的。它应该是这样的:

set(carB.a, carB.b);

答案 1 :(得分:0)

函数的类型不是void,因为C ++允许这样的语句:

A = B = C;

执行此语句后,所有三个变量都具有相同的值。换句话说,

A = (B = C);

要求B=C返回与A相同类型的内容。

关于参考符号('%')的作用,请在教科书中查找。