fork download
  1. #include <iostream>
  2.  
  3. struct A
  4. {
  5. virtual void foo() { std::cout << "A::foo\n"; }
  6. };
  7.  
  8. struct AA : A
  9. {
  10. virtual void foo() { std::cout << "AA::foo\n"; }
  11. };
  12.  
  13. struct AAA : AA
  14. {
  15. virtual void foo() { std::cout << "AAA::foo\n"; }
  16. };
  17.  
  18. void bar (A& a, void (A::* pMem)())
  19. {
  20. (a.*pMem)();
  21. }
  22.  
  23. int main() {
  24. A a;
  25. AA aa;
  26. AAA aaa;
  27.  
  28. bar (a, &A::foo);
  29. bar (aa, &A::foo);
  30. bar (aaa, &A::foo);
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
A::foo
AA::foo
AAA::foo