大挪耗

c++函数模版的具体化

#include "iostream"
using namespace std;

class CGirl//超女类
{
public:
    int m_bh;//编号。
    string m_name;//姓名。d
    int m_rank; //排名
};

template<typename T>
void Swap1(T &a,T &b)//交换两个变量的函数模版
{
    T tmp=a;
    a=b;
    b=tmp;
    cout<<"调用了Swap(T &a,T &b)\n";
}


template<>void Swap1<>(CGirl &g1,CGirl &g2)//交换两个超女对象的排名。
{
    int tmp=g1.m_rank;
    g1.m_rank=g2.m_rank;
    g2.m_rank=tmp;
    cout<<"调用了Swap(CGirl &g1,CGirl &g2)\n";
}

void Swap(int a,int b)//普通函数
{
    cout<<"使用了普通函数。\n";
}

template<typename Q>//函数模版
void Swap(Q a,Q b)
{
    cout <<"使用了模版函数。\n";

}

template <>
void Swap(int a,int b)//函数模板的具体化版本。
{
    cout<<"使用了具体化的函数模板。\n";
}


int main()
{
    int a=10,b=20;
    Swap1(a,b);//使用了函数模版。
    cout<<"a="<<a<<",b="<<b<<endl;
    CGirl g1,g2;
    g1.m_rank=1;g2.m_rank=2;
    Swap1(g1,g2);//使用了超女的具体化函数
    cout<<"g1.m_rank"<<g1.m_rank<<"g2.m_rank"<<g2.m_rank<<endl;
    Swap('a','b');
}

输出:
调用了Swap(T &a,T &b)
a=20,b=10
调用了Swap(CGirl &g1,CGirl &g2)
g1.m_rank2g2.m_rank1
使用了模版函数。



已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注