• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++初始化与赋值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、初始化与赋值的区别:

  二者的区别不是看,是否有=这个赋值操作符,而是看操作的时候,对象是否已经有值。

  初始化:创建对象,并给它设置初始值。

  赋值:对象已经有值,擦除对象的当前值,并使用新值代替。

2、初始化分为直接初始化和copy初始化。

  直接初始化:直接调用与实参匹配的构造方法。

  copy初始化:也叫copy构造,总是调用copy构造方法。copy构造方法就是这样的,Person(const Person& rhs),也就是根据已有的对象,copy对象的内容,形成一个副本。

3、一方面:定义对象的时候,肯定调用某个构造方法进行了初始化,包括显示或者隐式。另一方面,对象的初始化必须是在定义的时候进行。这意味着一旦对象定义了,想修改对象,不可能再次初始化对象,只能通过赋值。

4、 Person p1 = p2; 这个语句调用copy构造,为什么? 

  第一,定义对象p1的时候,肯定要调用一个构造方法,进行初始化,不可能调用赋值操作符; 

  第二,赋值的前提是,p1已经有值了,定义p1的时候,p1是没有值的,只能初始化。

5、 copy构造是一种特殊的构造方法,copy赋值和copy构造虽然做的事情相同,但二者有很大的区别。

  copy构造创建一个新的对象,因为是构造方法,没有返回值。

  copy赋值修改内容,并且返回自身的引用,这也是为什么可以连环赋值的原因。p1=p2=p3.  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
keil:C语言里面调用汇编程序发布时间:2022-07-18
下一篇:
C#与.NET程序员面试宝典1.4.2电话面试发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap