| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 714 人关注过本帖
标题:c++ 类函数求教
只看楼主 加入收藏
aiyulunhui
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2015-9-9
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:4 
c++ 类函数求教
template <typename captype, typename tcaptype, typename flowtype>
inline typename Graph<captype,tcaptype,flowtype>::termtype Graph<captype,tcaptype,flowtype>::what_segment(node_id i, termtype default_segm){}
这个函数怎么有两个::, 其中Graph是一个类, termtype是自定义的一个结构体
搜索更多相关主题的帖子: 结构体 
2015-09-09 19:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:5 
不知道你在奇怪什么?
2015-09-09 19:47
aiyulunhui
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2015-9-9
收藏
得分:0 
回复 2楼 rjsp
inline 后面的typename作用是什么?
2015-09-10 14:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用aiyulunhui在2015-9-10 14:03:04的发言:

inline 后面的typename作用是什么?
typename Graph<captype,tcaptype,flowtype>::termtype
typename 用来标明 termtype 是一个类型,而非成员

因为 Graph<captype,tcaptype,flowtype>::termtype 中的 termtype 是个成员呢,还是个类型,取决于 captype,tcaptype,flowtype 这三个模板参数
也就是说,在模板实例化前,编译器是无法知道它是什么

编译器优先将其看成“成员”而非“类型”,因为若是“类型”,则为定义变量,代价比前者大。
VC++ 使用了一个取巧的做法(后来发现这个取巧的做法存在无解的bug),即使不加 typename 也能编译通过,但你要知道这样做是不符合标准的。
2015-09-10 15:27
aiyulunhui
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2015-9-9
收藏
得分:0 
回复 4楼 rjsp
谢谢版主,基本懂了,‘typename标明是类型不是成员’有什么参考文献吗?我在网上和书上都没看到过这种解释
2015-09-10 15:38
快速回复:c++ 类函数求教
数据加载中...
 
   



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

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