我试图理解c ++中的项目结构,发现很难理解类结构和头文件。
从第1条中摘录(此文章底部的链接)
按照惯例,include目录用于头文件,但是现代实践>建议include目录必须严格包含需要的头文件 公开曝光。
我对这个过程的第一个问题是关于包含目录中的一个单独的类文件。
公开标题的目的是什么?
接着,看一个公开的头文件的例子。已链接到以下GH库中:https://github.com/AakashMallik/sample_cmake
Game_Interface类如何与Game_Engine相关联?
game_interface.h
#pragma once
#include <game_engine.h>
class GameInterface
{
private:
GameEngine *game;
public:
GameInterface(int length);
void play(int num);
};
我在其他地方寻找了此过程的简单解释,但是到目前为止,我发现的所有内容在此示例的上下文中都无法理解。
Web技术中C ++的背景还很新。
链接到文章1:https://medium.com/heuristics/c-application-development-part-1-project-structure-454b00f9eddc
答案 0 :(得分:0)
公开标题的目的是什么?
有时您可能正在开发某些功能或库。您可能希望通过共享代码的功能来帮助其他人,客户或客户。但是您不想共享确切的工作细节。
因此,例如,您希望共享一个图像处理功能,该功能将精美的滤镜应用于该功能。但是同时,您不希望他们确切知道您是如何实现的。在这种情况下,您可以创建一个头文件,例如具有功能声明的img_filter.h
-
bool ApplyFilter(const string & image_path);
现在您可以在img_filter.cpp
中实现所有详细信息:
bool ApplyFilter(const string & image_path)
{
....
// Implementation detail
...
}
接下来,您可以准备此文件的dll,供您的客户端使用。有关工作,参数,用法等方面的参考,您可以共享img_filter.h
。
与界面的关系:
定义良好的接口通常很不错,因此您可以透明地更改实现细节,这意味着 HOW 实现的细节并不重要,只要保留接口或函数名称和参数即可完整。