Skip to content

Files

Latest commit

 

History

History
41 lines (27 loc) · 1.27 KB

initialization.rst

File metadata and controls

41 lines (27 loc) · 1.27 KB

Initialization

C++ 的初始化方式可以分成很多種, 七種 Initializer :

  • Default initialization
  • Value initialization, e.g. std::string s{};
  • Direct initialization, e.g. std::string s("hello");
  • Copy initialization, e.g. std::string s = "hello";
  • List initialization, e.g. std::string s{'a', 'b', 'c'};
  • Aggregate initialization, e.g. char a[3] = {'a', 'b'};
  • Reference initialization, e.g. char& c = a[0];

兩種 Static initialization:

  1. Static initialization
  2. Dynamic initialization

兩種 Dynamic non-local initialization:

  1. Ordered dynamic initialization
  2. Unordered dynamic initialization

兩種 Class member initialization:

  1. Member initializer list
  2. in-class brace-or-equal initializer

Reference