Мне нравится помещать интерфейсы в заголовочные файлы и реализацию в cpp файлах. Мне не нравится писать C++, где я должен добавить членские переменные и прототипы к заголовку и затем методу снова в C++. Я предпочитаю что-то как:
module.h
struct IModuleInterface : public IUnknown
{
virtual void SomeMethod () = 0;
}
module.cpp
class ModuleImpl : public IModuleInterface,
public CObject // a common object to do the reference
// counting stuff for IUnknown (so we
// can stick this object in a smart
// pointer).
{
ModuleImpl () : m_MemberVariable (0)
{
}
int m_MemberVariable;
void SomeInternalMethod ()
{
// some internal code that doesn't need to be in the interface
}
void SometMethod ()
{
// implementation for the method in the interface
}
// whatever else we need
};
я нахожу, что это - действительно очевидный способ разделения реализации и интерфейса.
Вы пытались просмотреть журнал сборки? Это, наверное, самое близкое к тому, что вы хотите увидеть. Вы просматриваете окно вывода, и там, где написано «Журнал сборки был сохранен по пути ...», щелкните «путь», удерживая клавишу Ctrl, и откроется журнал сборки.