我想知道是否存在循环包含的解决方案,通过在较低级别函数中声明更高级别的函数,如下例所示: 我想做的(这是我的实际问题)就像在C风格中而不是包含模块的头部来访问它的功能,在当前文件中定义函数本身而不需要包含模块头
架构示例:
CMSampleBuffer
代码示例:
此示例提供以下2个错误:
APPLICATION (highest layer)
|
v
MIDDLEWARE (layer in between)
|
v
OPERATING SYSTEM (lowest layer)
答案 0 :(得分:0)
你需要一些cpp文件来完成这项工作,并在这些文件中包含方法体,以避免你所说的问题。
例如将OS更改为:
class OS {
public:
OS() {}
~OS() {}
int getInfo();
};
然后在cpp:
中声明getInfo
的正文
OS::getInfo() { return Application::get(); }
并在该cpp。
的顶部包含Application.h和OS.h答案 1 :(得分:0)
鉴于您将get
置于Application
的范围内,Application
的定义目前是您无法解决的要求。
如果您不需要Application
的私有成员来调用get
,您可以考虑使用外部链接的命名空间范围函数int application_get();
,该函数可以在{{1}中声明没有问题
OS.hpp
让我说,从软件架构的角度来看,我对这样的设计存在很大的疑问,但是你要求提供一个围绕你的问题的工具,这就是一个。我相信你会做出最适合你的决定