关于构造函数初始化列表:为什么引用类型必须使用初始化列表了?

Louistao 2011-07-13 11:36:30
rt:为什么引用类型必须使用初始化列表
...全文
312 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hedy007 2011-07-13
  • 打赏
  • 举报
回复
const 和 引用都属于那种必须在声明时马上初始化的。
如果放到构造函数体中,实际是在赋值。
至善者善之敌 2011-07-13
  • 打赏
  • 举报
回复
因为引用只能被初始化一次,如果是在构造函数中赋值的话,显然前边那句话就矛盾了
Ace丶双鱼 2011-07-13
  • 打赏
  • 举报
回复
C++基本语法,建议LZ先看看C++ primer
ouyh12345 2011-07-13
  • 打赏
  • 举报
回复
引用类型当然不能赋值,只能初始化
pengzhixi 2011-07-13
  • 打赏
  • 举报
回复
是的,引用从定义就必须有明确的初始化。
Louistao 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

文摘

4. 必须使用初始化列表的情形:因为不能直接在类定义中直接初始化变量,而 const 类型的变量和引用类型的变量又必 须在声明时进行初始化,const 类型的变量只能初始化不能进行赋值,比如 hyong 类中定义了 const int a 变量,而在 hyong::hyong(){a=1;}这时就会发生错误,const 变量不能赋值,只能初始化。这时就发生了毛盾,解决的方法就是使 用……
[/Quote]
引用类型也不能赋值?
bdmh 2011-07-13
  • 打赏
  • 举报
回复
文摘

4. 必须使用初始化列表的情形:因为不能直接在类定义中直接初始化变量,而 const 类型的变量和引用类型的变量又必 须在声明时进行初始化,const 类型的变量只能初始化不能进行赋值,比如 hyong 类中定义了 const int a 变量,而在 hyong::hyong(){a=1;}这时就会发生错误,const 变量不能赋值,只能初始化。这时就发生了毛盾,解决的方法就是使 用初始化列表,即 const 类型的变量和引用类型的变量必须在初始化列表中初始化,比如初始化 hyong 类中的 const 变量 a 时就应这样写 hyong::hyong():a(1){}就是正确的表达式。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧