从cpp文件仅公开一个接口

时间:2018-07-30 10:20:18

标签: c++

//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.husage.cpp。有没有一种方法我不必在usage.cpp中包含所有这些标头,因为实际上它只应该知道func1

我无法控制header1.hheader2.h,如果没有警卫人员,则会出现多个定义错误。

编辑: 如果header1.h有一些struct定义,则会在usage.cppfuncs.cpp中都定义,这会引发错误。

0 个答案:

没有答案