注册 登录
编程论坛 C++教室

STL 源码剖析问题

qwe885167759 发布于 2014-10-20 23:20, 452 次点击
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) { }

是什么意思,请各位指教一下
3 回复
#2
rjsp2014-10-21 08:29
看书吧,这最基本的语法不是别人一句两句能全讲完的

MyIter<int> ite(new int(8)); 你不懂
但 double x( 0.5 ); 你能看懂吗?
MyIter<int> 就相当于 double,是个类型
ite 就相当于 x,是个变量名
new int(8) 就相当于 0.5,是个值
#3
stop12042014-10-21 12:13
显式具体化模版
下面就是 默认类型是T (根据传入参数自动选择)   然后就是没默认参数就是 指针P值默认=0
#4
qwe8851677592014-10-21 23:08
谢谢了,我一发上去后就看懂了
。。。。。。。。。。。。了
1