
#include <string>
#include <iostream>

#define PFUNC() do { std::cout << __FUNCTION__ << "\n"; } while (0)

class MyFoo;

class MyBar {
    
    MyFoo* foo;

public:

    MyBar(MyFoo* foo) : foo(foo) {
    }

    void DoStuff() {
        PFUNC();
        foo->DoStuff();
    }
};

class MyFoo {
    
public:

    void DoStuff() {
        PFUNC();
    }
};

int main() {
    MyFoo foo;
    MyBar bar(&foo);
    
    bar.DoStuff();
}
