这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
仅当形参是引用或指针时,形参是否为const才有影响。即可把const形参和非const形参视为不同的特征标;
而对于普通变量形参,则不能通过形参是否为const来重载。
例如:
#include
using namespace std;
void wtq(char *m)
{
cout << "char *" << endl;
}
void wtq(const char *m)
{
cout << "const char *" << endl;
}
int main()
{
const char p1[10] = "aaaaa";
char p2[10] = "bbbbb";
wtq(p1);
wtq(p2);
}
输出结果为:
const char *
char *
而对于普通变量形参,则会报错:提示重定义。
另外注意几点:
1.重载时,类型引用和类型被视为同一特征标。
2.不能基于指针本身是否为const去实现函数的重载。