4

我正在创建一个供第三方使用的 C++ 库。虽然我熟悉创建 C 库,但我几乎没有创建 C++ 库的经验。我担心的是,我需要考虑 C++ 库 API 带来的其他问题。如 :

  1. 跨 API 的异常处理。
  2. 类成员对库创建的对象的用户访问
  3. 用户销毁库创建的对象,反之亦然。
  4. 谁知道还有什么...

除了 C 库必须考虑的之外,我还必须考虑什么?

此致

4

2 回答 2

6

C++ 是一种比 C 更复杂的语言,因此您需要注意更多的问题。总是存在语言中立的问题,例如如何设计良好的公共/私有分离、文档、版本控制、保持向后兼容性等。但也存在各种 C++ 特定的问题,例如 const 正确性、模板的使用、异常与返回码,不暴露数据成员,您对继承的使用,考虑复制构造函数和赋值运算符,指针或引用的使用,默认参数,朋友,内联的使用等。

完全公开,我是“C++ API 设计”一书的作者。不想听起来像我在推这本书,它确实涵盖了您所询问的主题:如何为 C++ 设计好的 API。您可以查看本书的目录,以便对您应该考虑的问题有一个很好的概述。此外,示例章节还讨论了 pimpl 惯用语,我个人喜欢将其作为在 C++ 中提供更好封装的一种方式。

http://www.apibook.com/blog/contents

于 2013-03-27T15:01:40.663 回答
0

Microsoft 确实为类库提供了设计指南,不确定是否也适用于 Linux,但这些是一般指南,应该适用于各种平台。

http://msdn.microsoft.com/en-us/library/czefa0ke(v=vs.71).aspx

于 2013-03-26T12:02:52.750 回答