9.16. 构造函数初始值列表

总述

构造函数初始化列表放在同一行或按四格缩进并排多行.

说明

下面两种初始值列表方式都可以接受:

  1. // 如果所有变量能放在同一行:
  2. MyClass::MyClass(int var) : some_var_(var) {
  3. DoSomething();
  4. }
  5.  
  6. // 如果不能放在同一行,
  7. // 必须置于冒号后, 并缩进 4 个空格
  8. MyClass::MyClass(int var)
  9. : some_var_(var), some_other_var_(var + 1) {
  10. DoSomething();
  11. }
  12.  
  13. // 如果初始化列表需要置于多行, 将每一个成员放在单独的一行
  14. // 并逐行对齐
  15. MyClass::MyClass(int var)
  16. : some_var_(var), // 4 space indent
  17. some_other_var_(var + 1) { // lined up
  18. DoSomething();
  19. }
  20.  
  21. // 右大括号 } 可以和左大括号 { 放在同一行
  22. // 如果这样做合适的话
  23. MyClass::MyClass(int var)
  24. : some_var_(var) {}