奥礼网
新记
请问下面关于C++类中给私有成员赋值的语句有差别吗?
MyClass(int val) : _m(val) {}
MyClass(int val) {_m=val;}
举报该文章
相关建议 2017-02-26
有区别的,前者是初始化,后者是初始化后赋值,前者可以理解成分配内存的同时就执行赋值,后者则是分配内存的同时执行默认初始化方式(如果内置类型,如int char,则值是未知的,如果是类类型,则执行默认构造函数),然后执行构造函数体里面的赋值语句,前一种称为参数列表初始化,前者执行效率高于后者,而且当类数据成员为const或引用,且你希望传值进来初始化的时候,你就必须用前一种方式了。
温馨提示:内容为网友见解,仅供参考
当前网址:
https://aolonic.com/aa/1a1a5w1n131n4ankk4d.html
其他看法
第1个回答 2017-02-26
没有差别,两者一样
相似回答
大家正在搜
相关问题
c++中,怎么对私有成员变量进行赋值
C++中怎么对私有成员变量进行赋值,最好能写出个例子
c++类中 对于私有数据成员,在main函数中是否可以直接为...
C++中,如何给一个类中的私有变量赋值?
c++类中的私有成员变量有什么作用?
在类中通过函数对私有成员变量赋值可以吗
在一个类中如何给另一个类的私有成员变量赋值
c++中可以对类中私有成员中的静态变量初始化吗?