From: kenb@fiona75b (kenneth baclawski) Subject: Re: C++ and the Law How does this sound? Every member function M of a class C is only allowed to call member functions of the following classes: 1. -- The argument classes of M, 2. -- The data member classes of C, 3. -- The classes of objects created by M, 4. -- The classes of objects returned by functions called by M, 5. -- The classes of global objects. -- Ken Your formulation is very explicit in saying what we mean; there is one little wrinkle: -- The classes of objects returned by functions called by M, This is too generous and increases the number of classes the programmer has to keep in mind when studying a given method. We delete this line and add to the previous line: -- The classes of objects created by M (directly, by calling a constructor function or indirectly, by calling a function which will call eventually a construction function) Is this a good formulation? We felt that 3 and 5 are special cases of 1. Therefore our original formulation. -- Karl