Calling pointer-to-member function C++

wolfPack88

I have a pointer to a member function defined within a class, e.g.:

class Example {
   void (Example::*foo)();

   void foo2();
};

In my main code, I then set foo as:

Example *a;
a->foo = &Example::foo2;

However, when I try to call foo:

a->foo();

I get the following compile time error: "error: expression preceding parentheses of apparent call must have (pointer-to-) function type". I'm assuming I'm getting the syntax wrong somewhere, can someone point it out to me?

Bob Fincheimer

to call it you would do: (a->*(a->foo))()

(a->*X)(...) - dereferences a member function pointer - the parens around a->*X are important for precedence.

X = a->foo - in your example.

See ideone here for working example

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Error in calling a pointer to member function

From Dev

Trouble calling pointer to member function

From Dev

C++ - calling a member function of another class using a pointer

From Dev

Calling a member function pointer without using this

From Dev

calling member function pointer from static member function

From Dev

C++ function pointer and member function pointer

From Dev

C++ pointer to member function not a function pointer

From Dev

C++ pointer to member function getting an error : not a function or function pointer

From Dev

Getting address of class member function and calling it from pointer

From Dev

noexcept operator fails after calling pointer-to-member function

From Dev

calling a member function pointer from outside the class - is it possible?

From Dev

Calling a member function pointer passed as template argument from lambda crashes

From Dev

Calling member function through a pointer from Python with pybind11

From Dev

Calling a pointer-to-member function from a struct array

From Dev

Error calling templated pointer-to-member function with a return type

From Dev

Constructor of struct calling the member function of another class declared as a pointer

From Dev

Boost C++. Passing a member function pointer with signature pointer to function

From Dev

Function pointer as member of struct in C Invalid initializer

From Dev

C++ function pointer to class member

From Dev

C++, template or pointer to member function

From Dev

C++ const member function returns a pointer

From Dev

C++ Member Function Pointer Definition

From Dev

C++ How is this not member function pointer?

From Dev

Pointer to member function using C++ lambda

From Dev

C++. Calling a virtual member function in destructor

From Dev

C# calling member function with delegate

From Dev

Calling non-const member function pointer from const member function

From Dev

Calling C++ DLL function with pointer

From Dev

Calling C function from returned pointer in NodeJS

Related Related

  1. 1

    Error in calling a pointer to member function

  2. 2

    Trouble calling pointer to member function

  3. 3

    C++ - calling a member function of another class using a pointer

  4. 4

    Calling a member function pointer without using this

  5. 5

    calling member function pointer from static member function

  6. 6

    C++ function pointer and member function pointer

  7. 7

    C++ pointer to member function not a function pointer

  8. 8

    C++ pointer to member function getting an error : not a function or function pointer

  9. 9

    Getting address of class member function and calling it from pointer

  10. 10

    noexcept operator fails after calling pointer-to-member function

  11. 11

    calling a member function pointer from outside the class - is it possible?

  12. 12

    Calling a member function pointer passed as template argument from lambda crashes

  13. 13

    Calling member function through a pointer from Python with pybind11

  14. 14

    Calling a pointer-to-member function from a struct array

  15. 15

    Error calling templated pointer-to-member function with a return type

  16. 16

    Constructor of struct calling the member function of another class declared as a pointer

  17. 17

    Boost C++. Passing a member function pointer with signature pointer to function

  18. 18

    Function pointer as member of struct in C Invalid initializer

  19. 19

    C++ function pointer to class member

  20. 20

    C++, template or pointer to member function

  21. 21

    C++ const member function returns a pointer

  22. 22

    C++ Member Function Pointer Definition

  23. 23

    C++ How is this not member function pointer?

  24. 24

    Pointer to member function using C++ lambda

  25. 25

    C++. Calling a virtual member function in destructor

  26. 26

    C# calling member function with delegate

  27. 27

    Calling non-const member function pointer from const member function

  28. 28

    Calling C++ DLL function with pointer

  29. 29

    Calling C function from returned pointer in NodeJS

HotTag

Archive