C++: 泛型编程

模板

模板函数

模板的基本使用规则如下:

template<typename T>
void m_swap(T &num1, T &num2){
    T temp = num1;
    num1 = num2;
    num2 = temp;
}

int main(int argc, char const *argv[])
{
    int num1 = 10;
    int num2 = 20;
    //自动类型推导调用
    m_swap(num1, num2);
    cout << num1 << endl;
    cout << num2 << endl;

    double num3 = 10.0;
    double num4 = 7.6;
    //显示指定类型调用
    m_swap<double>(num3, num4);
    cout << num3 << endl;
    cout << num4 << endl;

    return 0;
}

注意:使用模板时必须确定出通用数据类型T,并且能够推导出一致的类型。

普通函数和模板函数的调用规则

  • 如果模板函数和普通函数都有实现,则优先调用普通函数
  • 可以通过空模板参数列表来强制调用函数模板
  • 函数模板可以发生重载
  • 如果模板函数可以产生更好的匹配,则优先调用模板函数

模板类

模板类的基本使用方法如下:

template<typename nameType, typename ageType>
class Student {
    public:
        nameType name;
        ageType age;
    
    public:
        Student(nameType name, ageType age) {
            this->name = name;
            this->age = age;
        }

        void ShowName(){
            cout << this->name << endl;
        }
};

int main(int argc, char const *argv[]) {
    Student<string, int> stu("xiaoming", 18);
    stu.ShowName();

    system("pause");
    return 0;
}

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此人姓于名叫罩百灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值