设为首页 加入收藏

TOP

C++ 之函数模版(四)
2014-02-08 13:37:22 来源: 作者: 【 】 浏览:438
Tags:  函数 模版

 

  1.对于给定的函数名,可以有非模版函数,正常模版函数和显示具体化以及它们的重载函数

  2.显示具体化的原型和定义应以template<>开头,并通过名称制定类型

  3.具体化将覆盖常规模版,而非模版函数覆盖,具体化和常规模版

  <PRE class=brush:java;>#include <IOSTREAM>

  template <TYPENAME Any>

  void Swap(Any& a,Any& b);

  struct job

  {

  char name[40];

  double salary;

  int floor;

  };

  template <> void Swap<JOB>(job& job1,job& job2);//显示具体化声明

  void Show(job &j);

  int main()

  {

  using namespace std;

  cout.precision(2);

  cout.setf(ios::fixed,ios::floatfield);

  int i= 10, j = 20;

  cout《"i,j"《I《","《J《ENDL;

  Any <typename template } 0;

  return system(?pause );

  Show(sidney);

  Show(sue);

  swapping: 《endl; job cout《?After Swap(sue,sidney);

  cout《?Before sidney='{"Sidney",78060.72,9};'

  sue='{"Susan",74000.60,7};' , 《j《endl; i,j="《i《" cout《?Now Swap(i,j);

   《endl; swapper: int compiler-generated cout《?Using>

  void Swap(Any& a,Any& b)

  {

  Any temp =a;

  a = b;

  b = temp;

  }

  template<> void Swap<JOB>(job& job1,job& job2)//显示具体化定义(不需要再声明template <TYPENAME Any>)

  {

  double t1;

  int t2;

  t1 = job1.salary;

  job1.salary = job2.salary;

  job2.salary = t1;

  t2 = job1.floor;

  job1.floor = job2.floor;

  job2.floor = t2;

  }

  void Show(job &j)

  {

      

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇算法----二叉树Morris中序遍历 下一篇C++ map的基本操作和使用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)
·TCP和UDP在socket编 (2025-12-26 02:20:32)
·有没有适合新手练习 (2025-12-26 01:48:47)
·用清华镜像网怎么下 (2025-12-26 01:48:44)