C++如何使用按值传递和按引用传递重载方法

标签 c++ overloading

如何使以下重载工作

#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/

相关文章:

java - 打印列表的重载方法

java - java中的作业和重载

c++ - 比较binary_search的功能

java - 为什么调用少匹配的重载方法

c++ - C++的 "map"容器是否对字符串的连续子串应用Rabin-Karp算法?

c++ - 如何在 C++ 代码中存储 id<MTLBuffer>?

c++ - 如何用c++实现倒数计时器?

c++ - 打开不存在的文件时如何使 ofstream 构造函数失败?

c++ - 试图了解指针返回类型的工作原理

list - 如何列出特定 Julia 函数的所有重载?