m0_37232228
yu96848
采纳率33.3%
2017-06-14 09:31 阅读 1.0k

c++ 偏特化 求解释为什么编译不了?

 #include <iostream>
#include <cstdio>
#include <string>
using namespace std;
#if 0
template< class T>
struct iterator_traits
{
    typedef typename T::iterator_category   iterator_category;
    typedef typename T::value_type      value_type;
    typedef typename T::difference_type difference_type;//表示两迭代器之间的距离
    typedef typename T::pointer     pointer;
    typedef typename T::reference       reference;
};
#endif
template<class T>
class iterator<const T*>
{
    puclic:
    iterator(){cout<<"ok?"<<endl;}
};
int main(void)
{   
     iterator< const int*> ok;
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • shen_wei shen_wei 2017-06-14 09:37

    http://www.jb51.net/article/42099.htm

    模板类的使用。。。

    点赞 评论 复制链接分享
  • m0_37232228 yu96848 2017-06-14 09:46

    我就是看的那个偏特化才这么写的 感觉和他没差别啊

    点赞 评论 复制链接分享
  • shen_wei shen_wei 2017-06-15 06:36
    #include<iostream>
    using namespace std;
    template<class T>   //声明一个类模板,虚拟类型名为T
    class Compare
    {
     public:
      Compare(T a,T b)
      {
       x=a;
       y=b;
      }
      T max()
      {
       return(x>y)?x:y;
      }
      T min()
      {
       return(x<y)?x:y;
      }
     private:
      T x,y;
    }; 
    int main()
    {
     Compare <int> cmp1(3,7);  //定义对象cmp1,用于两个整数的比较
     cout<<"Max : "<<cmp1.max()<<endl;
     cout<<"Min : "<<cmp1.min()<<endl<<endl;
      Compare <float> cmp2(45.89,88.76);//定义对象cmp2,用于两个浮点数的比较
     cout<<"Max : "<<cmp2.max()<<endl;
     cout<<"Min : "<<cmp2.min()<<endl;
     Compare <char> cmp3('a','A'); //定义对象cmp3,用于两个字符的比较
     cout<<"Max : "<<cmp3.max()<<endl;
     cout<<"Min : "<<cmp3.min()<<endl;
     return 0; 
    }
    
    点赞 评论 复制链接分享

相关推荐