《数据结构》实验一 3

第三题源代码(运用类模板):

头文件“HEAD.h”:

#ifndef HEAD_H
#define HEAD_H
template<typename T>
class Cal
{
public:
T add(T x,T y);
T multiply(T x,T y);
};
#endif

源文件:

#include<iostream>
#include"HEAD.h"
#include<stdlib.h>
#include<iomanip>
using namespace std;
template<typename T>
T Cal<T>::add(T x,T y)
{
return x + y;
}
template<typename T>
T Cal<T>::multiply(T x,T y)
{
return x*y;
}
int main()
{
Cal<int> x;
Cal<float> y;
cout << "5+8=" << x.add(5,8) << endl;
cout << "4.5+6.1=" << y.add(4.5,6.1) << endl;
cout << "5*8=" << x.multiply(5,8) << endl;
cout << "4.5*6.1=" << y.multiply(4.5,6.1) << endl;
system("pause");
return 0;
}

运行结果截图:


知识点总结:

函数重载:

定义:c++编译系统允许为两个或以上的函数取相同的函数名,但形参的个数或者形参的类型不应相同。在编译时,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定所调用的函数。

注意点:函数重载无需进行特别的声明,只要所定义的函数与已经定义的同名函数形参形式不完全相同,编译器就会认为是函数的重载。如果某个函数的参数有默认值,必须要保证其参数默认值之后调用形式不与其他函数混淆。

函数模板:

定义:模板是以一种完全通用的方法来设计函数和类的,而不必预先说明将被使用的每个对象的数据类型。通过模板可以产生类或函数的集合,使他们操作不同数据类型的数据,从而避免为每一种数据类型产生一个单独的类或函数。它又分为函数模板和类模板。

相关文章

【啊哈!算法】算法3:最常用的排序——快速排序       ...
匿名组 这里可能用到几个不同的分组构造。通过括号内围绕的正...
选择排序:从数组的起始位置处开始,把第一个元素与数组中其...
public struct Pqitem { public int priority; ...
在编写正则表达式的时候,经常会向要向正则表达式添加数量型...
来自:http://blog.csdn.net/morewindows/article/details/6...