template模板重载

template模板重载

  模板重载首先要定义模板,然后才能重载,重在的意思就是对于特殊的类型,所产生的类应当行为与原模板产生的类不一致。

#include
using namespace std;

struct bss{

};
template<class T1,class T2,class T3>
struct bar
{
  void doStuff() { std::cout << "generic bar\n"; }
};
template<class T1>
struct bar<bss,int,T1>
{
 void doStuff() { std::cout << "chong zai \n"; }
};
int main()
{
  bar<bss,int,bss> a;
  a.doStuff();
  bar<int,int,bss> b;
  b.doStuff();
  return 0;
}

最后的输出结果可以看到,两种模板类的行为不一样

chong zai
generic bar

你可能感兴趣的:(c++,算法,开发语言,c++)