无法识别朋友功能
#include <iostream>
#include <cmath>
class hello {
private:
int a, b;
public:
hello(int a, int b) {
this->a = a;
this->b = b;
}
friend int add();
};
int add() {
return a + b;
}
int main() {
hello number(1, 2);
std::cout << number.add();
}
预期的:它应该添加类hello的2个membervariables(带有friend函数!)
实际结果:朋友功能“添加”未被识别为类成员
(错误消息:错误:“类你好”没有名为“添加”的成员)
add()中的a和b也无法识别。(明显)
这不是朋友功能的工作方式。朋友功能是普通功能(不是成员功能),这意味着它不与特定的对象实例关联。它和非朋友功能之间的唯一区别是,允许朋友访问与之成为朋友的班级的私人成员。
如果您希望能够访问特定对象实例的成员,则应该使用成员函数而不是朋友函数:
class hello {
int a, b;
public:
int add() { return a + b; }
}
或将对象实例作为参数添加到friend函数中:
int add(const hello& instance) {
return instance.a + instance.b;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句