打印

函数形参问题

[复制链接]
829|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-4-23 18:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
函数模板形参 有点没弄明白
例子:
template<typename T>
void fun(T& t1, T& t2)
{....}

int main()
{
int n = 10;
fun(1,2);//① 正确
fun(n,2);//② 错误
return 0;
}

①和②这两个地方让我有点糊涂。①成功是因为T的类型此时被替换成了const int类型吗??
②错误的地方是因为n和数字2的类型不同(一个是int 一个是const int) 还是因为int&不能绑定const int

①是正确的 那么fun中 T&和const T&岂不是一样了????


函数模板形参这个地方 有什么规律可循吗

相关帖子

沙发
无冕之王| | 2012-4-23 18:32 | 只看该作者
与模板无关, 参数是int &也会错2行, const int&才行

使用特权

评论回复
板凳
秋天落叶| | 2012-4-23 20:09 | 只看该作者
error: invalid initialization of non-const reference of type 'int&' from an rvalue of type 'int'
g++4.6.1 编译. 你那两个调用都是上面这个错误

使用特权

评论回复
地板
xsgy123| | 2012-4-23 20:15 | 只看该作者
什么编译器?

使用特权

评论回复
5
火箭球迷| | 2012-4-23 20:18 | 只看该作者
感觉应该是VC6

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝