首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

模版有关问题

2012-03-24 
模版问题问题1编译器可以直接通过,,但这些写法是否都是合法的??显示实例化templatevoidSwap(double&,doubl

模版问题
问题1   编译器可以直接通过,,但这些写法是否都是合法的??

显示实例化
template   void   Swap(double   &,double   &)  
template   void   Swap <double> (double   &,double   &)

显示具体化
template   <> void   Swap(double   &,double   &)  
template   <> void   Swap <double> (double   &,double   &)


问题2:

template <typename   T>     //T   :常规变量,指针变量,引用,类  
class   sample
{
public:
sample(){cout < < "常规模版 ";}
};


template <typename   T> class   sample <T*>   //这么写合法吗?  
{
public:
sample(){cout < < "指针模板 ";}
};


template <typename   T> class   sample <T&>   //这么写合法吗?  
{
public:
sample(){cout < < "引用模板 ";}
};

 
  template <typename   T> class   sample <T*>
  template <typename   T> class   sample <T&>     的写法书上并没有写出来   ,我自己乱试出来的   汗~~~~~~~
  因为c++很多不规范也不会出现编译错误   所以想问下这样写符合规则吗?  


[解决办法]
這些寫法都是合法的,問題一裏面的double和方括號都可以省略,模板參數可以自動推演出來。
問題二裏面的兩种寫法是偏特化。

热点排行