我正在创建一个供第三方使用的 C++ 库。虽然我熟悉创建 C 库,但我几乎没有创建 C++ 库的经验。我担心的是,我需要考虑 C++ 库 API 带来的其他问题。如 :
- 跨 API 的异常处理。
- 类成员对库创建的对象的用户访问
- 用户销毁库创建的对象,反之亦然。
- 谁知道还有什么...
除了 C 库必须考虑的之外,我还必须考虑什么?
此致
我正在创建一个供第三方使用的 C++ 库。虽然我熟悉创建 C 库,但我几乎没有创建 C++ 库的经验。我担心的是,我需要考虑 C++ 库 API 带来的其他问题。如 :
除了 C 库必须考虑的之外,我还必须考虑什么?
此致
C++ 是一种比 C 更复杂的语言,因此您需要注意更多的问题。总是存在语言中立的问题,例如如何设计良好的公共/私有分离、文档、版本控制、保持向后兼容性等。但也存在各种 C++ 特定的问题,例如 const 正确性、模板的使用、异常与返回码,不暴露数据成员,您对继承的使用,考虑复制构造函数和赋值运算符,指针或引用的使用,默认参数,朋友,内联的使用等。
完全公开,我是“C++ API 设计”一书的作者。不想听起来像我在推这本书,它确实涵盖了您所询问的主题:如何为 C++ 设计好的 API。您可以查看本书的目录,以便对您应该考虑的问题有一个很好的概述。此外,示例章节还讨论了 pimpl 惯用语,我个人喜欢将其作为在 C++ 中提供更好封装的一种方式。
Microsoft 确实为类库提供了设计指南,不确定是否也适用于 Linux,但这些是一般指南,应该适用于各种平台。
http://msdn.microsoft.com/en-us/library/czefa0ke(v=vs.71).aspx