求助大神,我写了一个关于重载函数的程序,
#include<iostream>
using namespace std;
int a(int b);
int a(const int b);
int main()
{
int t = 10;
int te = 45;
a(te);
return 0;
}
int a(int b)
{
cout << "11111111111" << endl;
b++;
cout << b << endl;
return 9;
}
int a(const int b)
{
cout << "ddddddddddddd" << endl;
return 90;
}
这样写的话,程序会报错,请问在这里不区分int b 和 const int b 吗?
再看下面的代码:
#include<iostream>
using namespace std;
int a(char* b);
int a(const char* b);
int main()
{
char* p = "hello ";
const char* pp = "sssss";
a(p);
a(pp);
return 0;
}
int a(char* b)
{
cout << "11111111111" << endl;
return 9;
}
int a(const char* b)
{
cout << "ddddddddddddd" << endl;
return 90;
}
如果我把int 改为char* ,程序就不会报错,可以正常运行。
请问这又是为什么?