`
kmplayer
  • 浏览: 509305 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

只能用intialization list 而不能用assignment

 
阅读更多
当类中含有const或reference 成员变量
原因:
1,构造函数的 {} 内的操作只能是赋值.
调用构造函数的时候,首先是给该实例(类的具体对象)分配空间.
使用初始化列表的话,就在分配空间的时候,同时将其空间初始化.
执行到构造函数的大括号里的时候,所有成员的空间都已经分配好了,无论是否已经被初始化过,对其调用的“=”只能是赋值,
2,初始化与赋值是不同的:
(1)对象的初始化行为发生在它初次获得一个值的时候;赋值发生于"已初始化对象被赋值新值"的时候.
(2)前者由constructor执行;后者由operator=执行.
(3)另一方面assignment动作的目标可能已经拥有配置得来的资源,在新资源被赋值过去之前,旧资源必须先行释放.
3,常量变量和引用只能被初始化,所以必须在初始化列表中完成.

分享到:
评论

相关推荐

    oracle修改机器名后不能启动Console的解决方案

    ### Oracle修改机器名后不能启动Console的解决方案 在Oracle数据库管理过程中,有时为了方便记忆或出于其他考虑,可能会更改服务器的主机名。然而,在Oracle环境中修改主机名后,可能会遇到Oracle Database Console...

    关于mysql 8.0.13zip包安装方法

    default-character-set和character-set-server不能写成utf-8,写成UTF8Mb4就好 如果之前设置失败却创建了MYSQL服务, 用管理员身份打开cmd,(其实先直接打开cmd,再打开任务管理器,找到cmd所在位置再用管理员身份运

    02J060029-2013A1卧式自动插件机操作规程.pdf

    * 操作工每天清洁切纸站、BEC 操作工每天用布清洁光校系统、操作工每天加 10# 油润滑、分配每日清洁和润滑工作台 X、润滑挡锁。 该操作规程旨在确保环球立式自动插件机(6380B)的正确操作和维护,以达到产品品质...

    backbone-flash:主干的 Flash 通知功能

    ##Intialization 在应用程序启动时,您必须调用initialize以启用 Flash 消息传递。 这将使用默认配置,将 Flash 消息附加到 HTML 正文元素,并将使用下划线模板。 Backbone . Flash . initialize ( ) ; 要覆盖...

    java实战开发1200例源码-DotNet-Notes:点网笔记

    intialization takes less than the TimeSpan you defined controller.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(10)); 你可能经常看到: 服务启动()失败:超时已过期,操作尚未完成...

    opengl编程基础源代码

    opengl编程基础的源代码 以下为原版的详细的描述 This directory contains program that support the third edition of the OpenGL Primer. ...and the intialization glewInit(); after the glutInitWindow call.

Global site tag (gtag.js) - Google Analytics