c++函数模版,调试过程

本文通过六个例子探讨了C++中函数模板在使用和调试过程中可能遇到的问题,如函数名与标准库冲突、参数类型匹配、临时对象与引用的结合等。总结了避免报错的解决方案,强调了正确理解和应用模板参数的重要性。
摘要由CSDN通过智能技术生成

例子1:使用T max(T a,T b)调用会报错Call to ‘max’ is ambiguous,改为T max(T& a,T& b),不再报错。
原因竟然是:max是c++标准库的函数,所以不能用来做用户标识符
哈哈哈哈哈哈哈好的!

#include <iostream>
#include <cmath>
using namespace std;
template<typename T>
T max(T& a,T& b){
    return (a>b)?a:b;
}
int main(int argc, const char * argv[]){
    int i1=1,i2=3;
    double d1=3.298,d2=8.343;
    char c1='a',c2='b';
    cout<<max(d1,d2)<<' '<<max(i1,i2)<<' '<<max(c1,c2)<<endl;
    return 0;
}

好吧,改了函数模版的名字,用T my_show(T a,T b)和T my_show(T &a,T &b),调用时不再报错。

#include <iostream>
#include <cmath>
using namespace std;
template<typename T>
T my_show(T a,T b){
    return (a>b)?a:b;
}
int main(int argc, const char * argv[]){
    int i1=1,i2&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值