1 #include <iostream>
2 #include <array>
3
4 class Circle
5 {
6 private:
7 double r = 1.0;//类成员同时有就地初始化和构造函数列表初始化,则就地初始化忽略
8 public:
9 Circle() = default;//强制编译器,无参构造函数
10 Circle(double r){this->r = r;}//有参构造函数
11 double getArea()
12 {
13 return 3.14*r*r;
14 }
15 };
16 int main()
17 {
18 double TotalArea = 0.0;
19 //用default,编译了无参构造函数才添加进去,所以调试,看不到调用无参构造函数
20 std::array<Circle,10> CircleArray = {1.0,2.0,3.0,4.0,5.0};
21
22 for ( auto it = CircleArray.begin(); it != CircleArray.end(); ++it )
23 {
24 TotalArea += (*it).getArea();
25 }
26 std::cout<<TotalArea<<std::endl;
27 return 0;
28 }
https://zh.cppreference.com/w/cpp/container/array
初始化 / 赋值优先级: 在构造函数体中为成员赋值 > 构造函数初始化列表 > 类成员就地初始化