c++库API设计问题

C++ Library API Design issues

本文关键字:问题 API c++      更新时间:2023-10-16

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

    跨API的异常处理。
  1. 由库创建的对象的类成员的用户访问权限
  2. 用户销毁库创建的对象,反之亦然。

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

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

充分披露,我是《c++ API设计》一书的作者。我不想听起来像是在推销这本书,但它确实涵盖了您所询问的主题:如何为c++设计好的api。你可以查看这本书的目录,让你对你应该考虑的问题有一个很好的概述。此外,样例章节还包括对pimpl习惯用法的讨论,我个人喜欢这种习惯用法,因为它可以在c++中提供更好的封装。

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

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

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