杰 & C++ & Python & DM

赋值运算符和复制构造函数

      赋值运算符复制构造函数都是用已存在A的对象来创建另一个对象B。不同之处在于:赋值运算符处理两个已有对象,即赋值前B应该是存在的;复制构造函数是生成一个全新的对象,即调用复制构造函数之前B不存在。   
      CTemp a(b);      //复制构造函数,C++风格的初始化
      CTemp a=b;      //仍然是复制构造函数,不过这种风格只是为了与C兼容,与上面的效果一样
      在这之前a不存在,或者说还未构造好。

      CTemp a;
      a=b;               //赋值运算符
      在这之前a已经通过默认构造函数构造完成。

      我觉得将赋值运算符称为“赋值构造函数”是错误的,构造函数发生在对象创建时期,而赋值是运算符,发生在“运算”时期,赋值运算前,对象已经构造完成,所以不能称之为“构造函数”。
      一家之言!!

posted on 2009-04-29 18:32 jaysoon 阅读(1866) 评论(2)  编辑 收藏 引用 所属分类: C++

评论

# re: 赋值运算符和复制构造函数[未登录] 2009-04-29 20:16 robin

没见过“赋值构造函数”这种说法……  回复  更多评论   

# re: 赋值运算符和复制构造函数 2009-04-29 20:58 shongbee2

拷贝构造函数吧。呵呵。意思一样就行。呵呵。。学习了。  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2023年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

收藏夹

C++

搜索

最新评论

阅读排行榜

评论排行榜