2 u011407497 u011407497 于 2013.11.19 23:45 提问

C++数据成员赋值方式问题
c++

在成员函数中给一个数据成员赋值,若该数据成员是"me",那么"me=1"和"me(1)"有何不同?

3个回答

rogone
rogone   2013.11.22 17:41
已采纳

me=1如果是初始化,将调用一个构造函数;如果不是,将调用operator=(int),如果me的类定义中没有operator=(int)或者int相关类型重载,将会调用带有一个int参数的构造函数构造一个临时对象,然后调用赋值操作符函数进行赋值
me(1)如果是初始化,将会调用一个构造函数,如果不是初始化而且定义了operator()(),将会调用这个操作符函数

u012910781
u012910781   2013.11.21 15:58

分别属于me 的两个函数实现,拷贝构造函数 和赋值构造函数

lx624909677
lx624909677   Ds   Rxr 2013.11.27 10:42

就赋值而言没有什么区别,唯一区别就是给予me数值的方式不同而已,方式如楼上所说

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!