Nạp chồng toán tử gán trong C++

Bạn có thể nạp chồng toán tử gán (=) như khi bạn có thể với các toán tử khác trong C++ và nó có thể được sử dụng để tạo một đối tượng giống như copy constructor.

Ví dụ sau minh họa cách nạp chồng toán tử gán trong C++:

#include <iostream>
using namespace std;

class KhoangCach
{
   private:
      int met;             
      int centimet;           
   public:
      // phan khai bao cac constructor can thiet
      KhoangCach(){
         met = 0;
         centimet = 0;
      }
      KhoangCach(int m, int c){
         met = m;
         centimet = c;
      }
      void operator=(const KhoangCach &K )
      { 
         met = K.met;
         centimet = K.centimet;
      }
      // phuong thuc de hien thi khoang cach
      void hienthiKC()
      {
         cout << "\nDo dai bang m la: " << met <<  "\nVa do dai bang cm la: " <<  centimet << endl;
      }

};
int main()
{
   KhoangCach K1(23, 16), K2(15, 46);


   cout << "Khoang cach dau tien: "; 
   K1.hienthiKC();
   cout << "\n-------------------\n";
   cout << "Khoang cach thu hai:"; 
   K2.hienthiKC();

   // su dung toan tu gan
   K1 = K2;
   cout << "\n-------------------\n";
   cout << "Khoang cach dau tien: "; 
   K1.hienthiKC();
   return 0;
}

Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:

Bình luận