1

我无法弄清楚为什么我收到错误“ reference to 'distance' is ambiguous”。
我已将类对象作为朋友函数中的参数传递。

#include <iostream>
using namespace std;

class distance {
    int meters = 0;
public:
    distance() {}
    void displaydata() {
        cout << "Meters Value:" << meters;
    }
    //Prototype
    friend void addvalue(distance &d);
};

void addvalue(distance &d) {
    d.meters += 5;
}

int main() {
    distance d1; // meters = 0
    d1.displaydata(); // 0
    // The friend function call
    addvalue(d1); // pass by reference
    d1.displaydata();
}
4

1 回答 1

1

如果您删除using namespace std;并更改coutstd::cout,那么您的代码编译时不会出错。

发现歧义的根源留给读者作为练习

于 2020-09-21T19:28:22.370 回答