先看下方法模板:
#include <iostream>
#include "ClassTemplate.h"
using namespace std;
template <typename T> T minxxx(T x,T y){
return (x<y)?x:y;
}
int main() {
std::cout << "Hello, World!" << std::endl;
int n1=2,n2=10;
double d1=1.5,d2=5.6;
cout<< "较小整数:"<<minxxx(n1,n2)<<endl;
cout<< "较小实数:"<<minxxx(d1,d2)<<endl;
return 0;
}
类模型:
ClassTemplate.h
#ifndef CPPPROJECT_CLASSTEMPLATE_H
#define CPPPROJECT_CLASSTEMPLATE_H
template <typename T1,typename T2>
class myClass{
private:
T1 I;
T2 J;
public:
myClass(T1 a,T2 b);
void show();
};
template <typename T1,typename T2> myClass<T1,T2>::myClass(T1 a, T2 b):I(a),J(b) {}
template <typename T1,typename T2>
void myClass<T1,T2>::show() {
std::cout<<"I="<<I<<", J="<< J << std::endl;
};
#endif
main.cpp
int main() {
std::cout << "Hello, World!" << std::endl;
int n1=2,n2=10;
double d1=1.5,d2=5.6;
myClass<int,int> class1(3,5);
class1.show();
myClass<int,char> class2(3,'a');
class2.show();
myClass<double,int> class3(2.9,10);
class3.show();
return 0;
}