01/10/2018, 15:05

Lấy địa chỉ của phương thức trong C++

Mọi người cho mình hỏi, làm thế nào để lấy được địa chỉ của 1 phương thức trong 1 Class trong C++ ??

Dark.Hades viết 17:15 ngày 01/10/2018
#include <iostream>
#include <cstdlib>

class A
{
  public:
    void getF(){std::cout << 222323 << std::endl;}
};

int main()
{
  A a;
  
  void (A::* f)() = &A::getF;
  
  (a.*f)();
}

Hiểu đơn giản là gán địa chỉ của A::getF vào f, sau đó đối tượng a truy cập địa chỉ *f và thực hiện phương thức.

C++11 có thể dùng auto cho gọn code hơn:

auto f = &A::getF;
Bài liên quan
0