函数模板
// Test.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdlib.h> #include <iostream> #include "StackException.h" using namespace std; template <typename A> // 定义一个模板1,用的时候把A替换掉即可,将很多相同的操作通过模板来完成 void say(A a) { cout << a << endl; } template <typename A,typename B> // 定义一个模板2 void say(A a, B b,int c) { cout << a << endl; cout << b << endl; } template <typename A,int size> // 定义一个模板3 void say(A a) { for (int i = 0; i < size; i++) { cout << a << endl; } } int main() { // say<int>(2); // 使用模板1 // say<int, char>(123, 's',222); // 使用模板2 // say<int, 5>(3); // 使用模板3 system("pause"); return 0; }
注意:
1.
模板本身是不会产生任何代码的,有了模板函数才会有对应的代码。
2.
也可以把template写成class,二者等价。
3.
使用模板函数的时候不能分开定义,全部写到.h文件中,不要.cpp文件了。