codice:
//A.h
#ifndef A_H_INCLUDED
#define A_H_INCLUDED
class A
{
    //Un valore inutile
    int dummy;
public:
    A(int Dummy);
    inline int GetDummy()
    {
        return dummy;
    };
};
#endif
codice:
//A.cpp
#include "A.h"
A::A(int Dummy)
{
    dummy=Dummy;
}
codice:
//B.h
#ifndef
#include "A.h"
#ifndef B_H_INCLUDED
#define B_H_INCLUDED
class B
{
    A oggettoA;
public:
    B(int Dummy) : oggettoA(Dummy) //già per fare questo è necessario che il compilatore sappia che c'è un costruttore di A che accetta un int
    {
        //...
    };
    inline int GetValue()
    {
        return oggettoA.GetDummy()*10; //per fare questo è necessario che il compilatore conosca A::GetValue().
    };
};
#endif