如何在C++(头文件)中构建私有和公共 API
How to structure private and public API in C++ (header files)
我目前正在开发一个API,现在我发现在我的目录树中进行显式拆分很有用,以便将公共头文件与私有头文件和源文件分开。这样,就可以更轻松地为我的 SDK 构建公共和开发(私有)包。我现在想到了两种不同的选择:
1)
.../LibName/Class.h
.../LibName/private/ClassImpl.h
.../LibName/private/LibName/ClassImpl.cpp
2)
.../public/LibName/Class.h
.../private/LibName/ClassImpl.h
.../private/LibName/ClassImpl.cpp
至少对于公共文件,最好以"Libname/FileName"的方式组织文件,因为这是我的代码中包含指令的方式:
#include "LibName/FileName.h"
您认为组织 API 标头的最佳选择是什么?这两个中的一个,或者另一个?
谢谢
我最终选择了以下结构:
.../include/LibName1/Class.h
.../include/LibName2/OtherClas.h
.../src/LibName1/ClassImpl.h
.../src/LibName1/ClassImpl.cpp
.../src/LibName2/OtherClassImpl.h
.../src/LibName2/OtherClassImpl.h
这样,我既可以分离公共头(包含目录)和私有源代码(src 目录),也可以在 include 指令中引用头文件,而无需明确编写它们是公共的还是私有的:
#include "LibName1/Class.h"
这种结构(或类似的结构)也用于其他库,如Qt框架。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 在Windows 10上使用Visual Studio 2019构建的Tesseract API c ++程序在Wind
- 如何构建与操作系统隔离的节点插件api
- 使用 Bazel (Windows) 构建 Tensorflow 的问题 => 使用 Tensorflow C++ API
- 无法在窗口中构建 Tensorflow C++ API
- 如何在 go 中调用带有 .lib 和.dll文件的预构建 API
- 从Win32 API C 获取OS构建版本
- 使用tensorflow的C++ API构建错误
- 如何在C++(头文件)中构建私有和公共 API
- 如何知道我正在使用 ndk-build 构建哪个 API 级别?
- 如何使用 QJSEngine 构建 API
- 构建一个RESTFul C++api来与Python接口
- 在google-api-cpp-client中构建专门的服务api
- 如何在VS2010中构建Interactive Brokers API c++测试套接字客户端?
- 如何构建c++ Windows API程序,如c# WinForms
- 将Linux c++ API构建为Windows DLL
- 从c++应用程序自动构建Lua api