搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 请教,为何类中const变量和引用必须要使用成员初始化列表来初始化?
标题:
请教,为何类中const变量和引用必须要使用成员初始化列表来初始化?
只看楼主
全世界安静
等 级:
论坛游民
帖 子:104
专家分:65
注 册:2012-6-4
结帖率:
31.58%
楼主
已结贴
√
问题点数:5 回复次数:4
请教,为何类中const变量和引用必须要使用成员初始化列表来初始化?
class example
{
private:
const int num;
int& ret;
public:
example(int n,int f):num(n),ret(f)//请问num和ret为何一定要用成员初始化列表来初始化?最好能举例说明,谢谢!
}
搜索更多相关主题的帖子:
private
example
public
最好
2012-06-14 15:56
yang400b
等 级:
论坛游民
帖 子:14
专家分:17
注 册:2012-6-13
第
2
楼
得分:0
我只知道const是起保护作用,一但定义为常成员函数初始化之后就不能再改变这个成员函数的值,那么你定义的一个常变量,只有成员初始化才能初始化了。
2012-06-14 18:10
yang400b
等 级:
论坛游民
帖 子:14
专家分:17
注 册:2012-6-13
第
3
楼
得分:3
还有类本身就只能构造函数或者成员函数来初始化。 你有试过用成员函数初始化吗?
2012-06-14 18:12
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
4
楼
得分:3
请问num和ret为何一定要用成员初始化列表来初始化?
------ 你能分清 初始化 和 赋值 的不同吗?
const和引用,必须被初始化,而成员初始化只有初始化列表一种方法。
2012-06-15 15:03
半年换半生
等 级:
新手上路
帖 子:9
专家分:7
注 册:2012-7-21
第
5
楼
得分:0
对于静态成员来说,它是属于所有的类对象的,在内存中只存在一份拷贝,自然对于它的初始化只能进行一次,所以初始化它的方法被设计在了类声明中,而非类对象的定义中。
而常量成员呢,它是每个类对象都会拥有一份拷贝,所以它的初始化应该随着每个类对象的构造而进行一次,所有它的初始化只能存在于类的构造函数中
2012-07-23 15:48
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-371532-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.188744 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved