首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这是调用了复制构造函数还是调用了重载赋值操作符?该如何处理

2012-04-12 
这是调用了复制构造函数还是调用了重载赋值操作符?Point 是一类类型Point foo_bar(Point arg){Point local

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

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

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

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

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

热点排行