Every member or friend function M of a class C is only allowed to call member or friend functions of the following classes: -- The argument classes of M, -- The data member classes of C, -- The classes of objects created by M (directly, by calling a constructor function or indirectly, by calling a function which will call eventually a constructor function) -- The classes of global objects.