如何进行以下重载工作
#include <iostream>
using namespace std;
int subtractFive (int a)
{
a = a - 5;
return a;
}
int subtractFive (int &a)
{
a = a -5;
return a -5;
}
int main()
{
int A = 10;
cout << "Answer: " << subtractFive(*A) << endl;
cout << "A Value "<< A << endl;
cout << "Answer: " << subtractFive(A) << endl;
cout << "A Value "<< A << endl;
return 0;
}
尝试但没有编译
#include <iostream>
using namespace std;
int subtractFive (int a)
{
a = a - 5;
return a;
}
void subtractFive (int* a)
{
*a = *a -5;
}
int main()
{
int A = 10;
cout << "Answer: " << subtractFive(A) << endl;
cout << "A Value "<< A << endl;
subtractFive(A);
cout << "A Value "<< A << endl;
return 0;
}
答案 0 :(得分:0)
您可以尝试指定将地址作为参数的重载:
int subtractFive (int *a)
{
*a = *a -5;
return *a -5;
}
答案 1 :(得分:0)
将一个函数声明为地址,另一个按值或引用:
void subtractByFive(int * p_value)
{
if (p_value != NULL)
{
*p_value -= 5;
}
return;
}
答案 2 :(得分:0)
值和引用具有相同的类型,因此您不能在其上重载。如果你想要两个函数,其中一个函数修改它的参数,另一个函数返回新值,那么你要么必须给它们不同的名称或不同的类型(例如,让后一个函数使用指针类型)。