c++库API设计问题
C++ Library API Design issues
我正在创建一个供第三方使用的c++库。虽然我熟悉创建C库,但我几乎没有创建c++库的经验。我担心的是,我需要考虑c++库api提出的其他问题。例如:
- 跨API的异常处理。
- 由库创建的对象的类成员的用户访问权限
- 用户销毁库创建的对象,反之亦然。
除了我必须考虑的C库之外,我还必须考虑什么?
c++是一种比C语言更复杂的语言,因此有很多问题需要注意。总是有语言中立的问题,比如如何设计良好的公共/私有分离、文档、版本控制、维护向后兼容性等。但也有各种c++特有的问题,比如const正确性、模板的使用、异常与返回码的对比、不暴露数据成员、继承的使用、考虑复制构造函数和赋值操作符、指针或引用的使用、默认实参、友元、内联的使用等等。
充分披露,我是《c++ API设计》一书的作者。我不想听起来像是在推销这本书,但它确实涵盖了您所询问的主题:如何为c++设计好的api。你可以查看这本书的目录,让你对你应该考虑的问题有一个很好的概述。此外,样例章节还包括对pimpl习惯用法的讨论,我个人喜欢这种习惯用法,因为它可以在c++中提供更好的封装。
http://www.apibook.com/blog/contentsMicrosoft确实提供了类库的设计指南,不确定Linux是否也存在这样的指南,但这些是通用指南,应该适用于各种平台。
http://msdn.microsoft.com/en-us/library/czefa0ke (v = vs.71) . aspx
相关文章:
- 使用 Winsock2.h C++向不和谐 API 发送 HTTP 请求时出现问题
- Tensorflow C++ API 和 Caffe 兼容性问题与 Glog 相关
- C++ API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL依赖项问题
- 使用 Bazel (Windows) 构建 Tensorflow 的问题 => 使用 Tensorflow C++ API
- 在Android Studio项目中使用tensorflow lite C++API的问题
- 在 cplex c++ 音乐会 api++ 中处理非常大的问题而不会耗尽内存
- CTC梁搜索和TensorFlow C API的问题
- C 提升和ImageMagick API问题
- 将 API 函数参数从 'char *' 更改为"const char *"有哪些潜在问题?
- 在C++(和MoveIt API)上传递成员函数的std::绑定作为参数时出现问题
- Python C-API:PYDICT_GETITEM上的分割故障,可能的参考问题
- 在API中控制WNDProc功能的问题
- CreateProcess API的安全问题
- 在 Firebase 中使用 Rest api(Casablanca c++) 添加子项时遇到问题
- 尝试实现 Windows API 包装器的事件处理程序时遇到问题
- 问题5.5-Windows API无法正常工作
- 这个Windows API调用WaitForSingleObject有什么问题?
- 函数指针问题.如何有效地与C API接口(即.GSL)来自C++类
- 各种输入 API 的问题(RAWINPUT、WINAPI)
- Python 3:Python/C API字符串问题