如何使以下重载工作
#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;
}
最佳答案
您可以尝试指定一个以地址作为参数的重载:
int subtractFive (int *a)
{
*a = *a -5;
return *a -5;
}
关于C++如何使用按值传递和按引用传递重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867933/