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

MyClass(intval):_m(val){}MyClass(intval){_m=val;}... MyClass(int val) : _m(val) {}

MyClass(int val) {_m=val;}
展开
 我来答
hatianxiao
2017-02-26 · TA获得超过2047个赞
知道大有可为答主
回答量:2295
采纳率:77%
帮助的人:1277万
展开全部
有区别的,前者是初始化,后者是初始化后赋值,前者可以理解成分配内存的同时就执行赋值,后者则是分配内存的同时执行默认初始化方式(如果内置类型,如int char,则值是未知的,如果是类类型,则执行默认构造函数),然后执行构造函数体里面的赋值语句,前一种称为参数列表初始化,前者执行效率高于后者,而且当类数据成员为const或引用,且你希望传值进来初始化的时候,你就必须用前一种方式了。
arongustc
科技发烧友

2017-02-26 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:6002万
展开全部
没有差别,两者一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式