读书人

这是调用了复制构造函数还是调用了重载

发布时间: 2012-04-12 15:46:35 作者: rapoo

这是调用了复制构造函数还是调用了重载赋值操作符?
Point 是一类类型
Point foo_bar(Point arg)
{
Point local = arg; //这是调用了复制构造函数还是调用了重载赋值操作符?
}
有点迷惑了!

[解决办法]
Point local = arg; 复制构造函数

Point local; 构造函数
local = arg; 赋值运算符
[解决办法]
赋值操作符的作用: (判断是否自身赋值) 删除左操作数原来的值(也就是说左操作数必须是已经存在的) 再将右操作数的值赋给左操作数

Point local = arg; 楼主这句话里 是属于采用复制构造的方式初始化 local对象

如果local已经存在 再这样: local = arg 的话 就属于赋值

读书人网 >C++

热点推荐