即使已将类声明为友元类,也无法访问数据成员。错误:'总计'未在此范围内声明
#include <iostream>
#include <iomanip>
using namespace std;
class Produce
{
private:
float total;
public:
Produce()
{
total=0;
}
friend class Bill;
};
class Bill
{
private:
float grand_total;
public:
Bill()
{
grand_total=0;
}
Bill operator+=(const Produce &p)
{
return Bill(total+p.total);
}
};
答案 0 :(得分:1)
错误消息正确:当前范围中没有名称total
。代码应该引用grand_total
,它是类Bill
的成员,而后者又定义了正在编写的operator+=
,或者应该引用p.total
来访问该total
成员的Produce
。
答案 1 :(得分:0)
让班级A
成为班级B
的朋友并不意味着您可以在B
内随机命名A
的非静态成员,而无需命名要使用的B
个实例。
您希望程序使用哪个Produce::total
(可能无限)?