请问下面关于C++类中给私有成员赋值的语句有差别吗?

MyClass(int val) : _m(val) {}

MyClass(int val) {_m=val;}

有区别的,前者是初始化,后者是初始化后赋值,前者可以理解成分配内存的同时就执行赋值,后者则是分配内存的同时执行默认初始化方式(如果内置类型,如int char,则值是未知的,如果是类类型,则执行默认构造函数),然后执行构造函数体里面的赋值语句,前一种称为参数列表初始化,前者执行效率高于后者,而且当类数据成员为const或引用,且你希望传值进来初始化的时候,你就必须用前一种方式了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-02-26
没有差别,两者一样
相似回答