我试图通过使用前向声明并将#includes移动到实现文件中来简化一堆头文件“包括意大利面条”。但是,我不断遇到以下情况:
//Foo.h
#include "Bar.h"
class Foo
{
public:
void someMethod(Bar::someType_t &val);
};
//Bar.h
.
.
.
class Bar
{
public:
typedef std::vector<SomeClass> someType_t;
};
我想在尽可能多的情况下删除#include "Bar.h"。我还看到 Bar.h 中的 typedef 列在 Bar 类之外的情况。我假设这两种情况都可以以相同的方式解决。
有任何想法吗?