C ++でこれを行うことは合法/推奨されていますか
//Interface.h
#ifndef INTERFACE_H
#define INTERFACE_H
#include "WinImplementation.h"
#include "NixImplementation.h"
class Interface {
class WinImplementation;
class NixImplementation;
}
#endif
//WinImplementation.h
#ifndef WINIMPLEMENTATION_H
#define WINIMPLEMENTATION_H
#include "Interface.h"
class Interface::WinImplementation {}
#endif
//NixImplementation.h
#ifndef NIXIMPLEMENTATION_H
#define NIXIMPLEMENTATION_H
#include "Interface.h"
class Interface::NixImplementation {}
#endif