C++ 函数模板之 函数模板的使用举例

本文探讨了C++中函数模板与普通函数的调用优先级,指出在模板与普通函数都能适用时,优先选择普通函数;通过空模板参数强制调用模板;函数模板可实现重载,并强调当模板匹配更优时会优先选用。实例展示了如何在代码中应用这些规则。
摘要由CSDN通过智能技术生成

1.如果函数模板和普通函数都可以调用,优先调用普通函数
2.可以通过空模板参数列表强制调用函数模板
3.函数模板可以发生函数重载
4.如果函数模板可以产生更好的匹配,优先调用函数模板

// 1.如果函数模板和普通函数都可以调用,优先调用普通函数
// 2.可以通过空模板参数列表强制调用函数模板
// 3.函数模板可以发生函数重载
// 4.如果函数模板可以产生更好的匹配,优先调用函数模板
#include<iostream>
using namespace std;
void myprint(int a , int b)
{
    cout << "common function" << endl;
}
template<class T>
void myprint(T a, T b)
{
    cout << "moban " << endl;
}
template<class T>
void myprint(T a, T b,T c)
{
    cout << "moban 2" << endl;
}
void test1()
{
    int a = 9;
    int b = 10;
    myprint(a,b);    //1.如果函数模板和普通函数都可以调用,优先调用普通函数 ,调用的是第一个普通函数
}
void test2()
{
    int a = 9;
    int b = 10;
    myprint<>(a,b);  //通过空模板参数列表强制调用函数模板
}
void test3()
{
    int a = 9;
    int b = 10;
    int c = 11;
    myprint(a,b,c);  //4.如果函数模板可以产生更好的匹配,优先调用函数模板
}
int main()
{
    test1();
    test2();
    test3();
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值