c++ : class type reference operator= 用法

c++ : class type reference operator= usage

这是我的第一个 post 如果格式不正确请理解 X)

因此,在我的 class 中,我需要使用 operator= 函数使 class 对象等于相同 class.[=12= 的第二个对象]

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。但是,我不太了解这里函数的类型。 为什么函数不无效?参考符号(两者)在此代码中的作用是什么?

我正在学习第一门计算机语言的第二个季度。请帮忙! 谢谢! :]

这叫做 assignment operator,您不需要实现它,因为它默认存在。如果你在 class 中有指针,你可以实现你自己的 assignment operatorcopy constructor 来进行深拷贝而不是浅拷贝。

参考符号的意思是 return 通过引用允许函数调用位于调用的左侧,并允许像 A = B = C.

这样的级联赋值

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

set(carB.a, carB.b);

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

A = B = C;

这条语句执行后,所有三个变量都将具有相同的值。也就是说,

A = (B = C);

要求 B=C return 与 A.

类型相同的东西

参考符号('%')是干什么的,自己查课本吧。