8.3. 类注释

总述

每个类的定义都要附带一份注释, 描述类的功能和用法, 除非它的功能相当明显.

  1. // Iterates over the contents of a GargantuanTable.
  2. // Example:
  3. // GargantuanTableIterator* iter = table->NewIterator();
  4. // for (iter->Seek("foo"); !iter->done(); iter->Next()) {
  5. // process(iter->key(), iter->value());
  6. // }
  7. // delete iter;
  8. class GargantuanTableIterator {
  9. ...
  10. };

说明

类注释应当为读者理解如何使用与何时使用类提供足够的信息, 同时应当提醒读者在正确使用此类时应当考虑的因素. 如果类有任何同步前提, 请用文档说明. 如果该类的实例可被多线程访问, 要特别注意文档说明多线程环境下相关的规则和常量使用.

如果你想用一小段代码演示这个类的基本用法或通常用法, 放在类注释里也非常合适.

如果类的声明和定义分开了(例如分别放在了 .h.cc 文件中), 此时, 描述类用法的注释应当和接口定义放在一起, 描述类的操作和实现的注释应当和实现放在一起.