猿问

模板与右值问题

这个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");

}


万千封印
浏览 318回答 1
1回答

三国纷争

首先,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的参数类型不匹配。。。
随时随地看视频慕课网APP

相关分类

Java
我要回答