| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1047 人关注过本帖
标题:一个函数带来的三个疑惑!
只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
song4:
谢谢你新年忙碌中帮助我:
也谢谢你去年的帮忙:

首先给你拜个年,祝愿你新年万事如意:

以下是引用song4在2007-2-19 23:04:20的发言:

一个是返回该HEAD的引用
//link_type & root() const {return (link_type&) header->parent; }
//我觉得没必要,因函数声名有引用返回
//应该返回一个全局的变量
//不然 引用{返回引用}另个引用嵌套在一起真没见过!
// 不如引用{返回全局变量}
//link_type & root() const
一个是返回与HEAD指象同一个的无名对象
//link_type & root() const {return (link_type) header->parent; }
//无名对象是不是临时对象,如果是那么就错误了


2007-02-20 12:39
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
你就看这个&就是引用
别的什么也不是,至于&&我也没见过,不过是真没必要

2.这个没有 名字,是无名,临时的,是临时

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-02-20 16:46
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
song4:
你好:谢谢你的帮助!
对与你在2楼的回复中我有如下疑惑:
(选子侯杰STL源玛剖析—219页大概页中)
link_type & root() const
{ 问题1:
return (link_type&) header->parent; //(link_type&) 我猜是类型转化,不知道那位朋友能给点说法?
} //你的猜想 1。我估计是子类象基类转换,返回一个基类的引用来引用这个子类的根

再看了书:我发现header->parent=0
或者header->parent指的就是一个link_type类型,
既然这样那么直接 return header->parent;
为何还要 return (link_type&) header->parent;
岂不多此一举!
所以希望指点:

2007-03-05 17:53
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

LZ,估计你是误解他们的意思了.

const函数的两种形式:
1、const declaration形如:const int func(int p); 表示返回值是一个r-value
2、member-function const形如:int MyClass::func(int p) const; func函数中不能对MyClass的数据成员做修改或赋值。

当然,上面的参数都是可选的,与语法没有关系。

mem-function const 与 mem-function的区别在于能对MyClass的数据成员做修改或赋值。

link_type & root() const
{
return (link_type&) header->parent;
}
这里header应该是类中的数据成员吧?
有const在末尾表示不能对它修改.

(link_type&)是类型转换.
这里没有修改header;而是把header->parent的值返回出去。


link_type & root() const
{
return (link_type&) header->parent;
}
link_type & root() const
{
return (link_type) header->parent;
}
请教着两个函数的区别?

第一个函数编译正确,第2个编译错误.
float & f(int a)//返回类型不匹配时,若为引用则类型转换也要加&
{
return (float&)a;
}
int & f(int a) //匹配时不用转换
{
return a;
}


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-05 20:39
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
谢谢:
你的不停的帮助
你的帮助对我太有用拉!


2007-03-05 21:18
快速回复:一个函数带来的三个疑惑!
数据加载中...
 
   



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

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