privateなメンバをヘッダに書くのってどうなんでしょう。
たとえば、WindowsでIShellFolderを抽象化したディレクトリクラスを作るとして、

class directory {
IShellFolder* sf;
public: ... };

とすると、このクラスのクライアントコードがIShellFolderに直接触れなくても、
このヘッダを使うソースではIShellFolderを含むヘッダをincludeしないとならなくなりますよね?

それを避けるための手段のひとつにpimplとかインターフェイスベースってのがあるんでしょうが、
手間も掛かるし、なんかどうも納得いかないんですよね。