无参构造函数、有参构造函数、容器array

Posted on 2019-05-28 23:00  金色的省略号  阅读(241)  评论(0编辑  收藏  举报
 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

初始化  /  赋值优先级: 在构造函数体中为成员赋值 > 构造函数初始化列表  >  类成员就地初始化