我一直在为我的编程课程做一个练习,而我现在正在学习的特别是关于朋友函数/方法/类的练习。我遇到的问题是我的朋友功能似乎没有做它的工作;我在我的代码周围出现“[变量名] 在此上下文中是私有的”错误,我试图访问友元函数应该有权访问的变量。
这是头文件中的类定义(我删除了不必要的东西以节省空间)。
class Statistics {
private: // The personal data.
PersonalData person;
public:
Statistics();
Statistics(float weightKG, float heightM, char gender);
Statistics(PersonalData person);
virtual ~Statistics();
...
friend bool equalFunctionFriend(Statistics statOne, Statistics statTwo);
friend string trueOrFalseFriend(bool value);
};
这是出现错误的方法。
bool equalFuntionFriend(Statistics statOne, Statistics statTwo)
{
// Check the height.
if (statOne.person.heightM != statTwo.person.heightM)
return false;
// Check the weight.
if (statOne.person.weightKG != statTwo.person.weightKG)
return false;
// Check the gender.
if (statOne.person.gender != statTwo.person.gender)
return false;
// If the function hasn't returned false til now then all is well.
return true;
}
所以,我的问题是:我做错了什么?
编辑:问题已由 Angew 解决。似乎这只是一个错字......我很傻!