A.h
class B; // Forward declaration, just let compiler know that B is a class type. (In fact, compiler didn't know the B class content.)
class A
{
public:
int fun(B& b);
private:
B* ptrB;
};
A.cpp
# include "A.h"
# include "B.h" // Need include real B class header to let compiler find B class content.
int A::fun(B& b)
{
ptrB->fun(); // fun() is a function in B class.
b.fun();
}