Nạp chồng toán tử gọi hàm () trong C++

Toán tử gọi hàm () trong C++ có thể được nạp chồng cho các đối tượng của kiểu lớp. Khi bạn nạp chồng (), bạn đang không tạo một cách mới để gọi một hàm. Đúng hơn là, bạn đang tạo một hàm toán tử mà có thể được truyền số tham số tùy ý.

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

#include 
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;
      }
      // nap chong toan tu goi ham ()
      KhoangCach operator()(int x, int y, int z)
      {
         KhoangCach K;
         // bay gio, dat phep tinh bat ky
         K.met = x + y + 5;
         K.centimet = y - z + 20 ;
         return K;
      }
      // 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(24, 36), K2;

   cout << "Khoang cach dau tien la: "; 
   K1.hienthiKC();

   K2 = K1(15, 15, 15); // trieu hoi toan tu ()
   cout << "\n--------------------------\n"; 
   cout << "Khoang cach thu hai la: "; 
   K2.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