C++ 初始化与赋值
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.
C++ 初始化与赋值的更多相关文章
- 百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法
百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法 金刚 前端 ueditor 初始化 因项目中使用了百度编辑器——ueditor.整体来说性能还不错. 发现问题 我在做一个编辑页面 ...
- C语言指针的初始化和赋值
1.指针的初始化 指针初始化时,"="的右操作数必须为内存中数据的地址,不能够是变量,也不能够直接用整型地址值(可是int*p=0;除外,该语句表示指针为空).此时,*p仅仅是表示 ...
- c/c++ 标准容器 之 初始化, 赋值, swap, 比较
c/c++ 标准容器 之 初始化, 赋值, swap, 比较 知识点 1,容器的初始化,对应代码里的test1 2,标准库array的初始化,对应代码里的test2 3,容器的赋值 ,对应代码里的te ...
- (转)C++初始化与赋值
来源:http://www.cnblogs.com/chio/archive/2008/10/06/1305145.html 先来个区别说明:赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一 ...
- GO学习笔记 - 变量在定义时没有明确的初始化时会赋值为“零值 ”。
官方教程:https://tour.go-zh.org/basics/12 变量在定义时没有明确的初始化时会赋值为 零值 . 零值是: 数值类型为 0 , 布尔类型为 false , 字符串为 &qu ...
- C语言结构体数组内带字符数组初始化和赋值
1.首先定义结构体数组: typedef struct BleAndTspRmtCmd{ char terminal[3]; char note[3]; char rmtCmd[10]; char c ...
- c++构造函数成员初始化中赋值和初始化列表两种方式的区别
先总结下: 由于类成员初始化总在构造函数执行之前 1)从必要性: a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数 b. 成员是常量或引用:成员无法赋值,只能被初始化 ...
- c++构造函数问题,初始化和赋值问题
默认构造函数(就是没有参数的构造函数) The Default ConstructorThe default constructor is the constructor used to create ...
- PHP变量的初始化以及赋值方式介绍
什么是变量 变量通俗的来说是一种容器.根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同.在变量中存放的数据,我们称之为变量值. PHP 中的变量用一个美元符号后面跟变量名来表示.变量名 ...
随机推荐
- PyPI镜像网站
镜像列表:http://www.pypi-mirrors.org/ 清华镜像:http://e.pypi.python.org/
- angularJS+requireJS并集成karma测试实践
最近在为下一个项目做前端技术选型,Angular是必须要用的(BOSS指定,个人感觉也不错,开发效率会很高).由于需要加载的JS很多,所以打算看看angular和requirejs一起用会怎么样.在g ...
- 高效使用STL
高效使用STL 参考:http://blog.jobbole.com/99115/ 仅仅是个选择的问题,都是STL,可能写出来的效率相差几倍:熟悉以下条款,高效的使用STL: 当对象很大时,建立指针 ...
- oracle 体系结构解析
三.oracle 体系结构 1.oracle内存由SGA+PGA所构成 2.oracle数据库体系结构数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. oracl ...
- yum 安装 php5.6 和 mysql5.6
安装 PHP rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm; rpm - ...
- PHP 碎片
1. $_SERVER['REMOTE_ADDR'] cannot be modified by the user or via HTTP so you CAN trust it. -- 用这个可以有 ...
- cookie一些简单的操作
cookie 保存数据 document.cookie=name+'='+value+';expires='+date; //name=shiyou ;expires=Tue Mar 08 ...
- 第三百六十天 how can I 坚持
看了两集linux视频,有点懵啊,下班还想走去天安门,想啥呢,太远了. 居住证没法办,哎,要入职两年. 考研要是也不能考,这一年也太.. 点不会那么背吧. 好像没啥了,睡觉.
- 第三百五十一天 how can I 坚持
是应该喜欢还是厌烦这种状态,犹豫不定,毫无目标. 人不贪,谁信,我嘴上说我不贪,可是内心已经把我出卖了,要不怎么股票会被套呢. 别人贪婪时我恐惧,别人恐惧时我贪婪,我成了什么,别人贪婪时,我狂妄,别人 ...
- Ubuntu14.04上安装pip的方法
在Ubuntu14.04上,建议通过下面的方法安装,这是一种通用的方法,也适用于Windows,当然在Windows下 手动下载下来就行了 wget https://bootstrap.pypa.io ...