//函数模板
#include <iostream>
using namespace std;
template<typename T> //template<class T>
T addition(T a, T b) { //addition为模板函数
return a + b;
}
int main(int argc, char** argv) {
int m = 6, n = 8;
//double m = 6.6, n = 8.8;
cout<<addition(m, n); //m与n需为同一数据类型
return 0;
}
//类模板与函数同理,但略有不同
#include <iostream>
using namespace std;
template<typename T>
class Number {
private:
T a, b;
public:
Number(T a, T b) {
this->a = a; //变量名冲突,用this指针点明成员变量
this->b = b;
}
~Number() {
cout<<"\nThe object has been deleted!";
}
T max() {
return (a > b) ? a : b;
}
};
int main(int argc, char** argv) {
Number<int> num(6, 8);
cout<<num.max();
return 0;
}