社区
C++ 语言
帖子详情
关于构造函数初始化列表:为什么引用类型必须使用初始化列表了?
Louistao
2011-07-13 11:36:30
rt:为什么引用类型必须使用初始化列表
...全文
363
7
打赏
收藏
关于构造函数初始化列表:为什么引用类型必须使用初始化列表了?
rt:为什么引用类型必须使用初始化列表
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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){}就是正确的表达式。
构造函数
初始化
列表
一.
构造函数
初始化
列表
的基本形式
构造函数
初始化
列表
以一个冒号开始,接着是以逗号分隔的数据成员
列表
, 每个数据成员后面跟一个放在括号中的
初始化
式。 student(int m,int n):shengao(m),tizhong(n) { cout<<"
初始化
"<<endl; } 代码举例: #include<iostream> using namespace std; class student { private: do...
C++入门-
构造函数
初始化
列表
大家好啊,今天我们来聊聊在C++中的
构造函数
初始化
列表
。在C++中,
构造函数
初始化
列表
是一种特殊的语法,用于在创建对象时对成员变量进行
初始化
。它可以提高代码的效率和可读性,尤其在处理类中的常量成员、引用成员或基类
构造函数
参数时非常有用。本篇博客将介绍
构造函数
初始化
列表
的知识点,并通过例子和代码来解释每个知识点。
构造函数
初始化
列表
和
构造函数
的区别
构造函数
初始化
列表
是显式的
初始化
类的成员;而没
使用
初始化
列表
的
构造函数
是对类的成员赋值,
初始化
和赋值对内置类型的成员没有什么大的区别,对非内置类型成员变量,为了避免两次构造,推荐
使用
类
构造函数
初始化
列表
。但有的时候
必须
用带有
初始化
列表
的
构造函数
:1.成员类型是没有默认
构造函数
的类。若没有提供显示
初始化
式,则编译器隐式
使用
成员类型的默认
构造函数
,若类没有默认
构造函数
,则编译器尝试
使用
默认
构造函数
将会...
c++
必须
使用
构造函数
初始化
列表
初始化
的情况
类对象的构造顺序是这样的: 1.分配内存,调用
构造函数
时,隐式/显示的
初始化
各数据成员; 2.进入
构造函数
后在
构造函数
中执行一般赋值与计算。
使用
初始化
列表
有两个原因: 原因1.
必须
这样做: 《C++ Primer》中提到在以下三种情况下需要
使用
初始化
成员
列表
: 情况一、需要
初始化
的数据成员是对象...
【C++】C++
构造函数
的
初始化
列表
构造函数
初始化
列表
是在
构造函数
的基础上,在参数和函数体花括号之间,以一个冒号开始,插入的内容就是
初始化
列表
。此处采用了C++11的
列表
初始化
的方式插入,还可以
使用
dataField1(value1)这样的方式插入。但是,如果成员是const,引用,或者属于某种未提供默认
构造函数
的类,则
必须
通过
构造函数
初始化
列表
为这些成员提供初值,否则会报错。这里具体是指Add对象的
构造函数
必须
在Rectangle的
构造函数
体之前完成
初始化
。但是,如果一个成员是用另一个成员来
初始化
的,那么这两个成员的
初始化
顺序就很关键了;
C++ 语言
65,207
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章