重载operator =

SNp*_*Npn 0 c++ operator-overloading variable-assignment

我必须创建一个重载=操作符的函数,这样当你把object1 = object2;它复制到o​​bject2里面的所有值到object1时.

我的班级看起来像:

class foo {
  private:
    int max;
    int *val;
    size_t *listofVal;
}
Run Code Online (Sandbox Code Playgroud)

我的重载函数声明为:

foo& foo::operator=(const foo& matrix);

foo::foo(std::istream& s);  //constructor
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Alo*_*ave 5

最好的方法是使用Copy and Swap Idiom.
另外,请注意,如果您觉得需要重载复制赋值运算符,那么您可能还需要重载复制构造函数以及类的析构函数.

看看三个规则.