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

template 复用问题

云尽头 发布于 2010-07-25 23:15, 570 次点击
   我最近看到一个程序。用了template<class T> 和 template<> 同时对一个函数进行定义。并且执行代码不同。这样不冲突吗?
   我怎么判断调用这个函数的时候,应该执行哪段代码?

   比如:有个类 XMLserialize。
   template<class T>
   T fun(T a,T b)
   {return a+b;}

   同时在.inl 文件中又有这样的一个定义:
   template<>
   inline double XMLserialize::fun(double a,double b)
   {return a*b;}

    请问,我调用XMLserialize.fun函数时,到底应该执行哪段代码呢?
    谢谢各位!!
   
  
5 回复
#2
pangding2010-07-26 00:44
有个叫什么特化的规则(specialization,怎么翻译的都有)。

基本意思就是如果有更合适的模板就用更合适的,你上网一查就知道了。还有不同的编译器对这个能力支持的程度可能不一样,相关的也可以查查用户手册。
#3
saynotolx2010-07-26 17:22
顶顶顶顶顶!
#4
云尽头2010-07-27 14:32
    可不可以说得细一点啊。
#5
云尽头2010-07-27 15:26
  我试了一下,这样子做会冲突!!
#6
pangding2010-07-27 20:57
我说的那个主题你看了吗?你用的编译器是不是 VC6.0 ?
1