分配運算子

賦值運算子是指將資料替換為已存在(先前初始化的)物件和其他物件的資料。讓我們以此為例:

// Assignment Operator
#include <iostream>
#include <string>

using std::cout;
using std::endl;

class Foo
{
  public:
    Foo(int data)
    {
        this->data = data;    
    }
    ~Foo(){};
    Foo& operator=(const Foo& rhs)
    {
            data = rhs.data; 
            return *this;
    }

    int data;
};

int main()
{
   Foo foo(2); //Foo(int data) called
   Foo foo2(42);
   foo = foo2; // Assignment Operator Called
   cout << foo.data << endl; //Prints 42
}

我可以在這裡看到我在初始化 foo 物件時呼叫賦值運算子。然後我將 foo2 分配給 foo。呼叫該等號運算子時出現的所有更改都在 operator= 函式中定義。你可以在這裡看到一個可執行的輸出: http//cpp.sh/3qtbm