| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2231 人关注过本帖
标题:const int& d = int()这句在程序里怎样理解?
只看楼主 加入收藏
Lyone
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:99
专家分:195
注 册:2010-12-7
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:8 
const int& d = int()这句在程序里怎样理解?
一个结构体如下:
struct a
{
int data_int;
a(const int& d = int()):data_int(d){}
};

1.int()是什么意思?分配一个int型的地址空间么?
2.const int& d怎么理解? 这样写与直接写成 int d有什么区别呢?
搜索更多相关主题的帖子: int const 
2010-12-10 10:44
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
const int& d怎么理解? 这样写与直接写成 int d有什么区别呢?
const int& d  是一个整形数据的常引用  (应该在初始化的时候赋值)
int d;是定义了一个整形变量
第一个问题我还真没见过

                                         
===========深入<----------------->浅出============
2010-12-10 11:00
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:5 
可以把C++的内建数据类型也看成类。
int()就是调用int的默认构造函数,产生临时整数0。int(3)就是产生一个3。
const int& d 这个d没有自己专属的内存空间(他使用为int()分配的那块地址),而int d则有自己的内存空间。(你现在这么理解就可以了)

迭代的是人,递归的是神。
2010-12-10 11:03
Lyone
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:99
专家分:195
注 册:2010-12-7
收藏
得分:0 
那const int& d这样写是不是就以为节省了内存空间。给程序瘦身呢?
2010-12-10 13:44
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
我表达能力不行,你自己看书里关于引用的内容,看几遍你就懂了。

迭代的是人,递归的是神。
2010-12-10 16:03
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:3 
const int& n一是为了防止n被修改,二是节省内存. 如果写成int n,传参时是要多分配4字节的,而且n是可以修改的
2010-12-10 21:14
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
我觉得一个 int 就的话说什么省内存呀,提高速度什么的都不实际。

但这属于 C++ 的一个逻辑习惯。传的参数如果不需要改动,普遍都用 const 的引用。
就是说是约定俗成的东西,大家都这么写,有各种好处,妙不可言。久而久之,就会有所体会了。


至于那个 int(),就是 3楼说的。
2010-12-10 21:43
尝鲜
Rank: 2
等 级:论坛游民
帖 子:24
专家分:12
注 册:2010-10-21
收藏
得分:3 
a(const int& d = int()):data_int(d){}
int()是初始化int 类型的
a(const int& d = int()):data_int(d){}
相当于
 a(const int& d=0):data_int(d){}
2010-12-10 22:00
kittel
Rank: 2
来 自:武汉
等 级:论坛游民
威 望:1
帖 子:38
专家分:73
注 册:2010-11-19
收藏
得分:1 
回复 7楼 pangding
学习了
2010-12-11 18:22
快速回复:const int& d = int()这句在程序里怎样理解?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018675 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved