只能用intialization list 而不能用assignment
2010-09-23 16:12
441 查看
当类中含有const或reference 成员变量
原因:
1,构造函数的 {} 内的操作只能是赋值.
调用构造函数的时候,首先是给该实例(类的具体对象)分配空间.
使用初始化列表的话,就在分配空间的时候,同时将其空间初始化.
执行到构造函数的大括号里的时候,所有成员的空间都已经分配好了,无论是否已经被初始化过,对其调用的“=”只能是赋值,
2,初始化与赋值是不同的:
(1)对象的初始化行为发生在它初次获得一个值的时候;赋值发生于"已初始化对象被赋值新值"的时候.
(2)前者由constructor执行;后者由operator=执行.
(3)另一方面assignment动作的目标可能已经拥有配置得来的资源,在新资源被赋值过去之前,旧资源必须先行释放.
3,常量变量和引用只能被初始化,所以必须在初始化列表中完成.
原因:
1,构造函数的 {} 内的操作只能是赋值.
调用构造函数的时候,首先是给该实例(类的具体对象)分配空间.
使用初始化列表的话,就在分配空间的时候,同时将其空间初始化.
执行到构造函数的大括号里的时候,所有成员的空间都已经分配好了,无论是否已经被初始化过,对其调用的“=”只能是赋值,
2,初始化与赋值是不同的:
(1)对象的初始化行为发生在它初次获得一个值的时候;赋值发生于"已初始化对象被赋值新值"的时候.
(2)前者由constructor执行;后者由operator=执行.
(3)另一方面assignment动作的目标可能已经拥有配置得来的资源,在新资源被赋值过去之前,旧资源必须先行释放.
3,常量变量和引用只能被初始化,所以必须在初始化列表中完成.
相关文章推荐
- 有哪几种情况只能用intialization list 而不能用assignment
- 有哪几种情况只能用intialization list 而不能用assignment?
- 只能用intialization list 而不能用assignment
- C++ 什么时候只能用intialization list而不能用assignment
- 哪几种情况只能用intialization list 而不能用assignment?
- 有哪几种情况只能用intialization list 而不能用assignment
- 只能用intialization list而不能用assignment
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
- ffplay中只能看图像不能听声音的解决方法
- 基类的protected成员变量只能被子类继承,在基类之外都不能直接访问基类protected成员变量
- spring test中数据库只能查询不能增删改
- 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
- 配置ftp服务器只能上传不能进行其他操作
- 让文本框内容不可编辑,如果type="file",那么只能通过点击浏览来改变,不能通过输入文字改变
- 【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?
- Ubuntu插上移动硬盘后只能读文件不能往硬盘上写,怎么办?以读写挂载就OK
- android htc g2可以开机,但不能进入recovery,只能进入fastboot解决方法
- 设计一个类,该类不能被继承,且只能实例化3次
- 解决Mysql中只能通过localhost登陆不能通过ip登陆的问题
- Linux 上JBOSS 启动后只能本机访问,其它机器不能访问问题解决。