1. 程式人生 > >函式的過載與泛型函式

函式的過載與泛型函式

#include"iostream"

using namespace std;
template <typename elemType>   //泛型設計 
void print(elemType *pBegin, elemType *pEnd)
{
	while(pBegin != pEnd)
	{
		cout << *pBegin;
		++pBegin;
	}
}

/*函式的過載*/ 
//void print(int *pBegin, int *pEnd)
//{
//	while(pBegin != pEnd)
//	{
//		cout << *pBegin;
//		++pBegin;
//	}
//}
//
//void print(char *pBegin, char *pEnd)
//{
//	while(pBegin != pEnd)
//	{
//		cout << *pBegin;
//		++pBegin;
//	}
//}
int main()
{
	int num[5] = {0, 1, 2, 3, 4};
	char name[5] = {'F', 'i', 's', 'h', 'c'};
	
	print(num, num+5);
	cout << '\n';
	
	print(name, name+5);
	cout << '\n';
	
	return 0;
 } 
 

函式的上的定義泛型函式,自適應輸入的函式的型別,遮蔽段為函式過載。

過載函式是函式的一種特殊情況,為方便使用,C++允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同,也就是說用同一個運算子完成不同的運算功能。這就是過載函式。過載函式常用來實現功能類似而所處理的資料型別不同的問題。不能只有函式返回值型別不同。