c++类 用冒号初始化对象(成员初始化列表)

c++类 用冒号初始化对象(成员初始化列表) 成员初始化的顺序不同于它们在构造函数初始化列表中的顺序,而与它们在类定义中的顺序相同

#include<iostream>
int n=0;
using namespace std;
 class Cbox{
         int a ;
         int b ;
         int c ;
     public:
         int g ;
     Cbox():a(n++),c(n++),b(n++){}
    ~Cbox(){cout<<a<<" "<<b<<" "<<c<<endl;}
 };
 
 int main(){Cbox a ;
 Cbox b(a);//跟   Cbox b=a;   结果一样 
 }

 

(1)在创建派生类对象时,先调用基类的构造函数,然后调用派生类的构造函数;撤销对象时,析构函数被调用的顺序则相反。

(2)若派生类中包含对象成员,则派生类的构造函数初始化成员列表中既要列出基类的构造函数也要列出对象的构造函数。派生类定义对象时,先调用基类的构造函数,再调用对象的构造函数,最后调用派生类的构造函数。
---------------------
作者:libaineu2004
来源:CSDN
原文:https://blog.csdn.net/libaineu2004/article/details/19565229
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2017-05-24 23:26  ff_d  阅读(1071)  评论(0编辑  收藏  举报