模板函数
定义:传入数据无需考虑数据类型的函数
关键字:template
用法:类似结构体,将类型定义于关键字之后,然后就可以将类型名随意使用了
实例:
交换数字。
#include <bits/stdc++.h>
using namespace std;
template <class T>
void myswap(T &a, T &b) {
T temp = a;
a = b;
b = temp;
}
int main() {
int a = 1, b = 2;
double c = 1.5, d = 5.6;
cout << "a: " << a << " b: " << b << endl;
myswap(a, b);
cout << "a: " << a << " b: " << b << endl;
cout << "c: " << c << " d: " << d << endl;
myswap(c, d);
cout << "c: " << c << " d: " << d << endl;
return 0;
}
注意:
函数模板类型定义的类型只能用在定义之下的第一个函数,并且函数模板类型可以连续定义多个类型。
模板函数和普通函数的区别:
使用模板函数的函数返回类型无法自己转化,而普通函数可以。(即return)
类模板函数:
与上述一致,但需要注意的是类在调用成员的时候需要用this->成员名称,并且调用此类函数的时候必须阐明指定现在要用的类型。
就像这样:
#include <bits/stdc++.h>
using namespace std;
template<class T>
class person {
public:
int age;
int height;
void show(T mage, T mheight) {
this->age = mage;
this->height = mheight;
cout << "my age is " << age << ", my height is " << height << endl;
}
};
int main() {
person<int> p;
p.show(19, 163);
return 0;
}
//运行结果:my age is 19, my height is 163.