example3_class_member_pointers.cpp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>

class MyClass {
public:
    void print() const { std::cout << "MyClass::print() called\n"; }
};

int main() {
    MyClass* obj = nullptr;
    void (MyClass::*memberFunc)() const = &MyClass::print;

    if (obj == nullptr) {
        std::cout << "obj is null, can't call member function\n";
    } else {
        (obj->*memberFunc)();
    }

    obj = new MyClass();
    (obj->*memberFunc)();

    delete obj;
    return 0;
}
Back to nullptr