函数模板和类模板
端午节过完了 ,又要开始上学啦,致敬爱学习的我。
今天说一下函数模板和类模板
声明函数模板
以下第一个代码片部分应用《C++面向对象程序设计》
声明函数模板
template <typename T> //T为类型参数
T max(T x,T y) //“T x,T y”为模板形参表
{return (x>y)?x:y;}
也可以定义成这样:
emplate <class T> //T为类型参数
T max(T x,T y) //“T x,T y”为模板形参表
{return (x>y)?x:y;}
函数模板声明格式如下:
template <typename 类型参数>
返回类型 函数名(模板形参表)
{
函数体
}
也可以定义成如下格式:
template <class 类型参数>
返回类型 函数名(模板形参表)
{
函数体
}
然后是类模板
template<typename 类型参数>
class 类名{
类成员声明
};
也可以如以下形式:
template<class 类型参数>
class 类名{
类成员声明
};
然后以下是我自己写的一个例子:
分别计算两个数组的和,输入两个学生的信息并输出。
#include <iostream>
#include<string>
using namespace std;
template<typename T>
T Sum(T arry[], int size = 0)
{
T sum = 0;
for (int i = 0; i < size; i++)
{
sum = sum + arry[i];
}
return sum;
}
template <typename T>
class student {
public:
student(T name, T number, T grade);
T Connect();
private: T x, y, z;
};
template <typename T>
student<T>::student(T name, T number, T grade)
{
x = name;
y = number;
z = grade;
}
template <typename T>
T student<T>::Connect()
{
return "name:" + x + '\n' + "number:" + y + '\n' + "grade:" + z;
}
int main()
{
int arry[4] = { 10,2,3,4 };
double para[5] = { 10.22,1.204,5.33,6.15,9.33 };
int sum1 = Sum(arry, 4);
double sum2 = Sum(para, 5);
cout << sum1 << endl;
cout << sum2 << endl;;
student <string>person("佩奇", "20190610", "大一");
string s = person.Connect();
cout << s;
return 0;
}
运行结果:
好啦 就是这些啦!虽然看得人很少,但是如果你看到了 ,觉得有用,点个赞哦!谢谢你。