码迷,mamicode.com
首页 > 编程语言 > 详细

C++类几种初始化的顺序

时间:2020-02-13 09:47:04      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:++   image   mic   nbsp   变量声明   etc   info   cout   span   

首先给段代码:

 1 class A{
 2     public:
 3     int x=0;
 4     A():x(1){cout<<"A(): x="<<x<<endl;}
 5     A(int a):x(a){cout<<"A(int a): x="<<x<<endl;}
 6     A(int a,int b):x(a){
 7         cout<<"A(int a,int b): x="<<x;
 8         x=9;
 9         cout<<" "<<"x="<<x<<endl;
10     }
11 };
12 int main(){
13     A x1;
14     A x2(3);
15     A x3(5,7);
16     getchar();
17 }

输出:

技术图片

 

 

 可以看到顺序为成员变量声明时初始化>>>列表初始化>>>构造函数内部初始化

 

 

另外如果列表初始化有多个变量,初始化的顺序是按照类中最初声明的顺序来的,而不是按你写的A():a(1),b(2),c(3){}就会一定按a>>>b>>>c去初始化的!

C++类几种初始化的顺序

标签:++   image   mic   nbsp   变量声明   etc   info   cout   span   

原文地址:https://www.cnblogs.com/FdWzy/p/12302091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!