C++ Library API设计问题

How*_*May 3 c++ api shared-libraries static-libraries

我正在创建一个供第三方使用的C++库.虽然我熟悉创建C库,但我很少有创建C++库的经验.我担心的是,我需要考虑C++库API提出的其他问题.如 :

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

我必须考虑哪些内容以及我必须考虑的C库?

最好的祝福

小智 5

C++是一种比C语言更复杂的语言,因此您需要注意更多的问题.总有一些像如何设计一个良好的公共/私人分离,文档版本控制,保持向后兼容性,等等,但语言无关的担忧还有各种C++ - 具体问题,如const正确性,你的模板使用,异常VS返回码,不暴露数据成员,继承的使用,考虑复制构造函数和赋值运算符,使用指针或引用,默认参数,朋友,使用内联等.

在完整的披露中,我是"API Design for C++"一书的作者.我不想听起来像是在推动这本书,它确实涵盖了你所询问的主题:如何为C++设计好的API.您可以查看本书的目录,以便更好地概述您应该考虑的问题.此外,示例章节还包括对pimpl习语的讨论,我个人喜欢将其作为一种在C++中提供更好封装的方法.

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