C++:函数模板

所谓函数模板就是定义一个通用的函数,不指定具体的参数,用一个虚拟参数代替;

当函数调用时,会根据实参判断具体的类型。

注意:不要使用默认参数;可以重载但尽量不要重载。

#include
using namespace std;

//以往我们要输出三个类型的变量时
//void Show(int a)
//{
//	cout << a << endl;
//}
//
//void Show(char a)
//{
//	cout << a << endl;
//}
//
//void Show(string str)
//{
//	cout << str << endl;
//}

template
void Show(T a)
{
	cout << a << endl;
}


int main()
{
	Show(100);
	Show('x');
	Show("abcd");

	return 0;
}

这里的typename也可以换成class,二者可以互换,但嵌套依赖类型:必须使用typename。

还有一点注意如下所示:

#include
using namespace std;


template
void AA(T t1, T t2)
{
	cout << t1 << " " << t2 << endl;
}

template
void BB(T1 t1, T2 t2)
{
	cout << t1 << " " << t2 << endl;
}

int main()
{

	AA(10, 20);
	//AA(10, 3.14);//不行
	BB(10,20);
	BB(10, 3.14);

	return 0;
}

你可能感兴趣的:(c++,算法,开发语言)