博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 初始化与赋值
阅读量:6710 次
发布时间:2019-06-25

本文共 613 字,大约阅读时间需要 2 分钟。

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.  

转载地址:http://cxalo.baihongyu.com/

你可能感兴趣的文章
MySQL行锁堵塞案例
查看>>
glom模块的使用(二)
查看>>
别开心太早,Python 官方文档的翻译差远了
查看>>
如何利用并发性加速你的python程序(二):I/O 绑定程序加速 ...
查看>>
一个BAT老程序员的忠告!
查看>>
Spring Boot 的 10 个核心模块
查看>>
我30岁了,转行学编程可以吗? 排除法告诉你答案
查看>>
Python进阶:全面解读高级特性之切片!
查看>>
社交大战升级,语音新物种“听途听app”获数百万天使轮融资
查看>>
C#并行开发_Thread/ThreadPool, Task/TaskFactory, Parallel
查看>>
主要的编程范型
查看>>
Centos-Mysql复制备份还原数据库
查看>>
Javascript操作DOM常用API总结
查看>>
零基础入门—网站建站教程(新手必备)
查看>>
小鹏汽车开设六城服务中心,今年内将交付4万辆车,运营200座超充站
查看>>
C++面向对象高级编程(上) 第一周 侯捷
查看>>
整理位运算
查看>>
传核桃编程获高瓴领投新一轮融资,金额超亿元
查看>>
蚂蚁金服红蓝军技术攻防演练究竟有多“狠”
查看>>
go微服务框架go-micro深度学习(四) rpc方法调用过程详解
查看>>