班级之友
friend of classes
我有2个类:预算和辅助办公室,我正在使用一个朋友功能:朋友辅助办公室::addBudget(double,Budget &); 访问预算的私人成员公司部门。
奥西尔·
#ifndef AUXIL_H
#define AUXIL_H
class Budget;
class AuxiliaryOffice
{
private:
double auxBudget;
public:
AuxiliaryOffice(){auxBudget=0.0;}
double getDivisionBudget()const{return auxBudget;}
void addBudget(double b, Budget &);
};
#endif
预算.h
#include"auxil.h"
#ifndef BUDGET_H
#define BUDGET_H
class Budget
{
private:
static double corpDivision;
double divisionBudget;
public:
Budget(){divisionBudget=0.0;}
void addBudget(double b){divisionBudget+=b; corpBudget+=b;}
double getDivisionBudget()const{return divisioBudget;}
double getCorpDivision()const{return corpDivision;}
friend AuxiliaryOffice::addBudget(double,Budget &);
};
#endif
生长素.cpp
#include"auxil.h"
#include"budget.h"
void AuxiliaryOffice::addBudget(double b, Budget& div)
{
auxBudget+=b;
**div.corpDivision+=b;** //this line it is the problem.
}
div.corpDivision+=b -> 预算::corpDivision 无法访问
经过一些尝试,它可以工作,尽管我不得不纠正您的示例中的一些问题:
class Budget;
class AuxiliaryOffice
{
private:
double auxBudget;
public:
// It would be a good idea to add spaces to your code to help other reading it
AuxiliaryOffice() { auxBudget = 0.0; }
double getDivisionBudget() const { return auxBudget; }
void addBudget(double b, Budget &);
}; // so far, so good
class Budget
{
private:
static double corpDivision;
double divisionBudget;
double corpBudget; // ** this was missing **
public:
Budget() { divisionBudget = 0.0; }
void addBudget(double b) { divisionBudget += b; corpBudget+=b; }
double getDivisionBudget() const { return divisionBudget; }
double getCorpDivision() const { return corpDivision; }
// ** note the "void" here, missing from your sample
friend void AuxiliaryOffice::addBudget(double, Budget&);
};
// this is also required to compile properly, usually in a Budget.cpp file
double Budget::corpDivision;
相关文章:
- 没有找到相关文章