为了账号安全,请及时绑定邮箱和手机立即绑定

模板与右值问题

模板与右值问题

万千封印 2019-03-14 14:15:39
这个T到底是什么,const char *是不对的,实参是右值对吧。错误如图#include<iostream>#include<cstring>using namespace std;template<typename T>T mangle(T a)//正确,但是const char* mangle(const char* a)错误{    char aa[20];    strcpy(aa,a);    return aa;}int main(){    cout<<mangle("hi");}
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

首先,


template<typename T>

T mangle(T a)//正确,但是const char mangle(const char a)错误

{

char aa[20];

strcpy(aa,a);

return aa; // !这样是不行的,返回局部数组的指针

}

实参"hi"的是char[3],形参推导出来是const char*

如果是char,当然不对,strcpy的参数类型不匹配。。。


查看完整回答
反对 回复 2019-04-25
  • 1 回答
  • 0 关注
  • 317 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号