Style 1:
A.h
#include "MyClass.h"
class A{
private:
int myInt;
float myFloat;
MyClass myClass;
};
Style 2:
A.h
class A{
};
A.cpp
#include "MyClass.h"
int myInt;
float myFloat;
MyClass myClass;
Style 3:
A.h
class A{
private:
int myInt;
float myFloat;
};
A.cpp
#include "MyClass.h"
MyClass myClass;
I know Style 1 is most simple, but it has at least 1 problem: need #include "MyClass.h" in A.h
Style 2 moved all private members in .cpp, it prevents #include "MyClass.h" exposed to A.h and hides more details from .h, but it has at least a disadvantage: the code is less readable, I cannot know all details about this class if I reads A.h only.
Style 3 seems get the balance, but I believe the code is less straight forward than Style 2 and I believe it is less maintainable.
which style is preferred?