#include <iostream>
using namespace std;
template <class MyType>
MyType GetMax (MyType a, MyType b, MyType c) {
return std::max(std::max(a, b), c);
}
int main () {
int a = 5, b = 6, c = 7, d;
char e [] = "1", f [] = "2", g [] = "3", h;
d=GetMax<int>(a,b,c);
cout << d << endl;
}
错误:没有匹配的函数可用于调用“GetMax(char [2], char [2], char [2])”
该程序在 int 上运行良好,但我不确定 char 的问题是什么
最佳答案
您正在声明 C 风格的字符串,也不是 char
。
如果您想将 GetMax
与 char
一起使用,您的代码应如下所示:
char e = '1', f = '2', g = '3', h;
h = GetMax<char>(e, f, g);
请注意,在这种特殊情况下,编译器可以确定 GetMax 的签名,因此您可以将调用减少为:
h = GetMax(e, f, g);
关于c++ - 模板函数如何获取 int 或 char 的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038760/