// template.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream> #include <string>
#include <vector>
#include <algorithm> #include <ctime> // std::time
#include <cstdlib> // std::rand, std::srand
using namespace std; //类模板/////////////////////////////////////////////////
template<class T1,class T2>
class myClass{
  private:
    T1 I;
    T2 J;
  public:
    myClass(T1 a, T2 b);//Constructor
    void show();
    T1 Sums();
};
//这是构造函数 ,注意这些格式
template <typename T1,typename T2>
myClass<T1,T2>::myClass(T1 a,T2 b):I(a),J(b)
{}
//这是void show();
template <typename T1,typename T2>
void myClass<T1,T2>::show()
{
  cout<<"I="<<I<<", J="<<J<<endl;
}
//这是Sums函数
template <typename T1,typename T2>
T1 myClass<T1,T2>::Sums()
{
  return I;
}
//////////////////////////////////////////////////////// template<class A,class B>
class CTemplate
{
private:
  A aa;
  B bb;
public:
  CTemplate(A a, B b);
  void setdata(A n1,B n2);
  A getdataA();
  B getdataB();
};
template<typename A,typename B>
CTemplate<A,B>::CTemplate(A a, B b):aa(a),bb(b)
{}
template<typename A,typename B>
void CTemplate<A,B>::setdata(A n1,B n2)
{
  aa = n1;
  bb = n2;
}
template<typename A,typename B>
A CTemplate<A,B>::getdataA()
{
  cout<<"aa:"<<aa<<" "<<endl;
  return aa;
};
template<typename A,typename B>
B CTemplate<A,B>::getdataB()
{
  cout<<"bb:"<<bb<<" "<<endl;
  return bb;
};
//函数模板//////////////////////////////////////////////
template <typename T1, typename T2>
void FunctionTemplate(T1 a, T2 b)
{
  cout<<"a:"<<a<<" "<<"b:"<<b<<endl;
}
////////////////////////////////////////////////////////
}int _tmain(int argc, _TCHAR* argv[])
{
  myClass<int,int> class1(,);
  class1.show();   myClass<int,char> class2(,'a');
  class2.show();   myClass<double,int> class3(2.9,);
  class3.show();   myClass<float,float> class4(3.1,2.5);
  float ff=class4.Sums();
  cout<<"ff:"<<ff<<endl;
  ///////////////////////////////////////////////////
  CTemplate<int, int> o_Tmeplate1(,);
  //o_Tmeplate1.setdata(3,4);
  o_Tmeplate1.getdataA();
  o_Tmeplate1.getdataB();   CTemplate<float,float> o_Tmeplate2(2.003,3.001);
  o_Tmeplate2.getdataA();
  o_Tmeplate2.getdataB();   ///////////////////////////////////////////////////
  int a = ;
  int b = ;
  FunctionTemplate(a,b);   double d =3.3 ;
  double c = 5.5;
  FunctionTemplate(d,c);
  ///////////////////////////////////////////////////   system("PAUSE");
  return ;
}

最新文章

  1. linux练习题
  2. nodejs配置及cmd常用操作
  3. 把所有css放到一个css文件的格式
  4. 霍夫变换(hough transform)
  5. XAMPP的Apache服务器无法正常启动解决方案
  6. chrome devtools 实用快捷键
  7. 使用最新的log4cplus(1.1.1)隔离不同的 log 文件输出
  8. 多工段查询存放到DataTable到List&lt;DataTable&gt;集合在C#里面做汇总
  9. 在.NET项目中使用PostSharp,使用MemoryCache实现缓存的处理(转)
  10. 从.Net到Java学习第六篇——SpringBoot+mongodb&amp;Thymeleaf&amp;模型验证
  11. C#从IE缓存读取图片
  12. c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);
  13. day05数据类型,数字类型,字符串类型,字符串的操作方法,列表类型的操作方法,可变类型与不可变类型
  14. sklearn datasets模块学习
  15. Android:TextView控件
  16. MySQL:存储过程和函数
  17. html中 &amp;nbsp; 和空格的区别
  18. linux 的常用命令---------第二阶段
  19. Kendo UI 的弹框
  20. Network| ICMP

热门文章

  1. bzoj1097
  2. 1. jsp中&lt;base target=&#39;&#39; /&gt;标签用法
  3. SpringBoot整合Ribbon注入RestTemplate实例找不到原因
  4. HDOJ2955 0/1背包的价值和重量
  5. bzoj 2331: [SCOI2011]地板【插头dp】
  6. PMD - Avoid autogenerated methods to access private fields and methods of inner / outer classes
  7. first-child和last-child选择器 nth-child(n)第几个元素 nth-last-child(n)倒数第几个元素
  8. pyinstaller模块
  9. Reduce实现
  10. 微信小程序开发常见的拉起外部地图软件进行导航的功能