Computer >> Máy Tính >  >> Lập trình >> C ++

Con trỏ hàm tới hàm thành viên trong C ++

Trong C ++, con trỏ hàm khi xử lý các hàm thành viên của lớp hoặc cấu trúc, nó được gọi bằng con trỏ đối tượng hoặc lệnh gọi this. Chúng tôi chỉ có thể gọi các thành viên của lớp đó (hoặc các dẫn xuất) bằng cách sử dụng con trỏ thuộc loại đó vì chúng thuộc loại an toàn.

Ví dụ

#include <iostream>
using namespace std;
class AB {
   public:
      int sub(int a, int b) {
         return a-b;
      }
      int div(int a, int b) {
         return a/b;
      }
};
//using function pointer
int res1(int m, int n, AB* obj, int(AB::*fp)(int,int)) {
   return (obj->*fp)(m,n);
}
//using function pointer
int res2(int m, int n, AB* obj, int(AB::*fp2)(int,int)) {
   return (obj->*fp2)(m,n);
}
int main() {
   AB ob;
   cout << "Subtraction is = " << res1(8,5, &ob, &AB::sub) << endl;
   cout << "Division is = " << res2(4,2, &ob, &AB::div) << endl;
   return 0;
}

Đầu ra

Subtraction is = 3
Division is = 2