c++模板使用教程

小葵花课堂开课了当你要像c++函数swap一样参数可以填入任意但相同的类型是该怎么办呢?

当然有些用c++11的人会说用auto啊!当然在c++11里是可以用auto但是auto是无法进行同一类型的为了同一类型c++有一种可以同一类型还可以自动推导的办法他就是:template模板就是他可以同一类型还可以自动推导的东东,现在然我们看看下面的实例吧

#inbclude<iostream>
using namespace std;
template<tymename/*这里可以改成class*/ T>//下面就用T这个类型
void prinf(T n){
    cout<<n<<endl;
}
int main(){
    int a;
    cin>>a;
    print(a);//自动推导类型:int
    print<char>(a)//强制设置类型:char
    return 0;
}
输入:48

输出:48

0(字符)

一个函数可以用多个模板

#inbclude<iostream>
using namespace std;
template<tymename T1,typename T2>//下面就用T这个类型
void prinf(T1 n1,T2 n2){
    cout<<n1<<" "<<n2<<endl;
}
int main(){
    int a;
    char b;
    cin>>a>>b;
    print(a,b);//自动推导类型:int,char
    print<char,int>(a)//强制设置类型:char,int
    return 0;
}

​
输入:48 3

输出:48 3

51 0

 

有模板的函数叫模板函数那么自然就有模板类

#include<iostream>
using namespe std;
template<typename T>
class au{
	public:
		a(T n){
            x=n;
        }
        a(){
        }
        T x;
};
int main(){
    au a(3);//正确,自动推导类型 int
    au<double> b;//正确,强制类型 double
    au c;//错误,没有强制类型也没有自动推导类型
    return 0;
} 

猜你喜欢

转载自blog.csdn.net/m0_68045532/article/details/129072017