c++模板template
1.1 template函数模板
# include <iostream>
using namespace std;
template < typename T >
void fun ( T input)
{
cout<< input<< endl;
}
int main ( )
{
fun < int > ( 3 ) ;
}
1.2 输出结果
3
2.1 template函数模板指定输出类型
# include <iostream>
using namespace std;
template < typename Res , typename T >
Res fun ( T input)
{
return input;
}
int main ( )
{
int x;
x = fun < int , int > ( 5 ) ;
cout<< x<< endl;
}
2.2 输出结果
5
3.1 template类模板
# include <iostream>
using namespace std;
template < typename T >
class B
{
public :
void fun ( T input)
{
cout<< input. val<< endl;
}
} ;
struct Str
{
Str ( int x) : val ( x) { }
int val;
} ;
int main ( )
{
Str a ( 1 ) ;
B< Str> y;
y. fun ( a) ;
}
3.2 输出结果
1
4.1 变量模板1
# include <iostream>
using namespace std;
template < typename T >
T pi = ( T) 3.1415926 ;
int main ( )
{
cout<< pi< float > << endl;
cout<< pi< int > << endl;
}
4.2 输出结果
3.14159
3
5.1 变量模板2
# include <iostream>
using namespace std;
template < typename T , unsigned v>
unsigned Mysize = ( sizeof ( T) == v) ;
int main ( )
{
cout<< Mysize< float , 4 > << endl;
cout<< Mysize< int , 2 > << endl;
}
5.2 输出结果
1
0