(4)c++ 之初始化列表

1. 成员变量在使用初始化列表初始化时,成员变量的初始化顺序 与 声明顺序有关

2. 如果不使用初始化列表初始化,在构造函数内初始化时,此时与成员变量在构造函数中的位置有关

#include <stdio.h>
#include <iostream>
using namespace std;

class A
{
private:
        int b; 
        int a;
      /*
       如果是 int a; int b;
       结果为0,3
      */
public: A(): a(0), b(a+3){}
 
void print() { cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; } }; int main() { A t; t.print(); return 0; }
结果:
a=0
b=32769

 

#include <stdio.h>
#include <iostream>
using namespace std;

class A
{
private:
        int b;
        int a;
public: 
        // A(): a(0), b(a+3){}
        A()
        {       
                b = a+3;
                a = 0;
          /*
            如果是 a = 0;
            b = a+3; 结果为0,3
          */ }
void print() { cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; } };
结果:
a=0
b=32769

 

posted @ 2020-06-08 15:46  欧阳图图的少年成长记  阅读(41)  评论(0编辑  收藏  举报