A
class Mesh
{
public:
class LockData
{
;
};
LockData* Lock( );
};
or B
class MeshLockData
{
;
};
class Mesh
{
public:
MeshLockData* Lock( );
};
My main issues with A is that it makes my headers ugly; having classes with allot of sub-classes can be very hard to read.
It also forces me to include the header into my pure virtual interface headers since I can't use forward declarations for the sub-classes. (As far as I know!)
The main problem with B that I can think of is that it will expose internal-use-only 'private' classes to the world! (surely a horrible thing )
What would you do?