| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:STL 源码剖析问题
只看楼主 加入收藏
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
结帖率:72.22%
收藏
已结贴  问题点数:10 回复次数:3 
STL 源码剖析问题
using namespace std;  
 template <typename T> class MyIter
 {
 public:
     typedef T value_type;
       MyIter(T *p = 0) : ptr(p) { }
       T& operator*() const
    {         return *ptr;
     }
   private:
     T *ptr;
    };
   template <typename I> typename I::value_type func(I ite)
 {
     return *ite;
 }
   int main(int argc, char* argv[])
{
     MyIter<int> ite(new int(8));
     cout << func(ite);
       return 0;
}

这是STL源代码剖析
我想问一下
 MyIter<int> ite(new int(8));

MyIter(T *p = 0) : ptr(p) { }

是什么意思,请各位指教一下
搜索更多相关主题的帖子: private 源代码 public return 
2014-10-20 23:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
看书吧,这最基本的语法不是别人一句两句能全讲完的

MyIter<int> ite(new int(8)); 你不懂
但 double x( 0.5 ); 你能看懂吗?
MyIter<int> 就相当于 double,是个类型
ite 就相当于 x,是个变量名
new int(8) 就相当于 0.5,是个值
2014-10-21 08:29
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:5 
显式具体化模版
下面就是 默认类型是T (根据传入参数自动选择)   然后就是没默认参数就是 指针P值默认=0

hl928452957@gmail点com

2014-10-21 12:13
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
收藏
得分:0 
谢谢了,我一发上去后就看懂了
。。。。。。。。。。。。了

我本楚狂人,凤歌笑孔丘
2014-10-21 23:08
快速回复:STL 源码剖析问题
数据加载中...
 
   



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

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