CPP-基础:模板
2024-09-04 21:39:58
// 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 ;
}
最新文章
- linux练习题
- nodejs配置及cmd常用操作
- 把所有css放到一个css文件的格式
- 霍夫变换(hough transform)
- XAMPP的Apache服务器无法正常启动解决方案
- chrome devtools 实用快捷键
- 使用最新的log4cplus(1.1.1)隔离不同的 log 文件输出
- 多工段查询存放到DataTable到List<;DataTable>;集合在C#里面做汇总
- 在.NET项目中使用PostSharp,使用MemoryCache实现缓存的处理(转)
- 从.Net到Java学习第六篇——SpringBoot+mongodb&;Thymeleaf&;模型验证
- C#从IE缓存读取图片
- c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);
- day05数据类型,数字类型,字符串类型,字符串的操作方法,列表类型的操作方法,可变类型与不可变类型
- sklearn datasets模块学习
- Android:TextView控件
- MySQL:存储过程和函数
- html中 &;nbsp; 和空格的区别
- linux 的常用命令---------第二阶段
- Kendo UI 的弹框
- Network| ICMP
热门文章
- bzoj1097
- 1. jsp中<;base target=&#39;&#39; />;标签用法
- SpringBoot整合Ribbon注入RestTemplate实例找不到原因
- HDOJ2955 0/1背包的价值和重量
- bzoj 2331: [SCOI2011]地板【插头dp】
- PMD - Avoid autogenerated methods to access private fields and methods of inner / outer classes
- first-child和last-child选择器 nth-child(n)第几个元素 nth-last-child(n)倒数第几个元素
- pyinstaller模块
- Reduce实现
- 微信小程序开发常见的拉起外部地图软件进行导航的功能