77问答网
所有问题
C++函数模板重载实例化报错
不知道有什么问题,我想法是返回让那个实例化的函数返回一个指针,我要完成的任务是,让该函数返回一个指针数组里面的一个指向最长字符串的指针
举报该问题
推荐答案 2015-11-10
cout << maxn()匹配到的那个maxn就是出现error的那个maxn, 而你又没有给maxn提供函数实体, 于是报错
写的那堆不清不楚的template如果是想用模板实现元编程的话就得把参数全部写在尖括号里, 只有写在模板参数里的才是编译时的参数, 否则像现在这样都是运行时参数没有意义; 用template返回一个值的技巧是写为enum::value的形式, 具体可以翻<modern c++ design>
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/Gp8Y38vp88NIvNW8WYv.html
相似回答
vs2015
c++ 函数模板重载
会报函数模板已经定义
答:
重载
是完全可能,只是在有的时候会产生歧义,导致
出错
.
错误
例子EXP1:templateT*fun(T*t){return*t;}templateTfun(Tt){returnt;}intmain(){inta=5;fun(a);fun(&a);return0;}这种就运行同不过原因是
模板函数
是以实参推断形参的类型,再来调用.在上面主要错的是fun(&a),我们既可以把形参类型推断为...
c++
调用
模板函数
怎么会
出错
?为什么啊?
答:
因为在
c++
标准库中已经定义了该
函数
,所以,可以在程序中要屏蔽标准库的min函数就可以了,方法是不要让std命名空间全部暴露在当前域中。将using namespace std;改成:using std::cout;//输出 using std::cin;//输入 其他的库函数均已此方法实现即可 ...
C++
利用
函数
模版
重载
实现两个数组求个和,求大神告知为什么错了,还有怎 ...
答:
看来你没有懂
函数模板
,函数模板中,T的类型实参必须是相同的,你的第二个函数名模板,你给T带进来的类型实参是int和double,就错了哦,你可以使用template <class T,class B> T(T *a,int n,B* a,int n) 这样就解决你需要的问题了
C++
为什么不能在main
函数
里面显式
实例化
类
模板
?
答:
链接错误
。1)链接的时候,需要实例化模板,这时候就需要找模板的具体实现了。假设在main函数中调用了一个模板函数,这时候就需要去实例化该类型的模板。注意main函数里面只包含了.h文件,也就是只有模板的声明,没有具体实现。就会报错。2)而模板的实现.cpp里面,虽然有模板的具体实现,但是没有谁在该...
c++函数模板
问题: 有多个
重载函数
“swap”
实例
与参数列表相匹配!!!求...
答:
标准库为我们定义了一个
模板化
的swap
函数
,可以使用std::swap使用。所以这里就会出现重定义,系统无法分辨用哪一个。将您程序里的swap修改为Swap吧。
C++重载
解析的问题
答:
是的,vc6就是会把double*看成T而去匹配 void Show(T arr[],int n);,将double* 看成T*这样的“更具体”的类型是
c++
的标准,而vc6有自己的一套标准,这是没办法的事,要么换个
函数
名,要么显式具体化,最好是换个编译器 ,从vc7(.net2002)开始,vc对c++标准的遵循有了本质的变化,到...
函数模板
必须由程序员
实例化
为可执行的函数模板?这句话为什么错了呢...
答:
函数模板
必须由编译器根据程序员的调用类型
实例化
为可执行的函数。还有一个类定义中,只要有一个函数模板,这个类就是类模板。这句话是对的吗??错classA{...templateconstT&max(constT&T1,constT&T2);};不是类模板。templateclassB{constT&max(constT&T1,constT&T2);};是类模板 ...
大家正在搜
c++函数重载
函数重载例子
函数重载的要求是
函数重载是什么
重载函数的特点
重载函数的定义
函数的重载是什么意思
函数重载是指
java函数重载
相关问题
C++输出运算符重载函数模板报错
vs2015 c++ 函数模板重载会报函数模板已经定义
C++模板类实例化,编译器报错
C++越过普通重载函数调用模板函数为什么错了?
C++中函数模板能够重载吗
VS 2017 写C++ 函数模板程序总是报错怎么回事?
C++利用函数模版重载实现两个数组求个和,求大神告知为什么错...
C++的函数重载和类模板有什么区别?