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