C++类构造函数为什么要使用初始化列表?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/winter_wu_1998/article/details/84188850
class Class {
int a;
double b;
string s;

void execute();
};


\\第一种写法
Class::Class(){
	a = 0;
	b = 1.0;
    s = "stirng";
}
\\第二种写法
Class::Class():
a(0), b(1.0), s("string"){ }

上面的第一种初始化方法是我以前习惯的写法,后来看到很多地方是使用的第二种初始化方法。一般情况下两者是差不多的,但是有的时候只能使用第二种初始化方法:

  • 成员变量是const或者是引用时
  • 成员变量没有默认初始化函数时,比如自定义的类

猜你喜欢

转载自blog.csdn.net/winter_wu_1998/article/details/84188850
今日推荐