代码如下:
#include<iostream>
using namespace std;
template<class T>
T Min(T a, T b)
{
return a < b ? a : b;
}
char* Min(char *a, char *b)
{
if (strcmp(a, b) < 0)
return a;
else
return b;
}
void main()
{
cout << Min(3, 5) << endl;
cout << Min("abc", "abd") << endl;
}
为什么第二个Min匹配了模板函数啊,不应该是匹配那个重载的函数吗,,,,
解决方案
10
改成const char*。
C++里面字符串字面值是const char数组。
C++里面字符串字面值是const char数组。
10
char* Min(char *a, char *b)
改成:
const char* Min(const char *a, const char *b)
改成:
const char* Min(const char *a, const char *b)
5
不要纠结各种常量了,这个世界上唯一不变的就是变化。用API WriteProcessMemory还能修改正运行的其它进程的内存里面的所谓常量呢!