//funcs.h
class A
{
void func1();
void func2();
};
//funcs.cpp
#include "header1.h"
#include "header2.h"
#include "func.h"
A::func1()
{
}
A::func2()
{
}
//usage.cpp
#include "header1.h"
#include "header2.h"
#include "func.h"
int main()
{
func1();
}
usage.cpp只会调用func1()
,而无需了解funcs.h
中的其他功能。为了从func1()
调用usage.cpp
,我需要在funcs.h
中包括header1.h
以及相关的标头,例如header2.h
和usage.cpp
。有没有一种方法我不必在usage.cpp
中包含所有这些标头,因为实际上它只应该知道func1
?
我无法控制header1.h
和header2.h
,如果没有警卫人员,则会出现多个定义错误。
编辑:
如果header1.h
有一些struct
定义,则会在usage.cpp
和funcs.cpp
中都定义,这会引发错误。