gpt4 book ai didi

c++ - 好友功能和 protected 数据

转载 作者:行者123 更新时间:2023-11-28 02:05:53 24 4
gpt4 key购买 nike

我有课

    class ScoreBoard: public die
{ //..//
protected:
bool mSetValue[6];
public:
//...//
friend void ValueSet();
};

我想利用这种友元来访问 mSetValue。所以我在 ScoreBoard.cpp 中所做的是:我预定义一个函数 (void ValueSet();) 然后像这样定义它:

void ValueSet()
{ char lPick;
std::cin >> lPick;
if (lPick == 1) mSetValue[0] = true; }

但是调试器说:

'mSetValue' was not declared in this scope.

所以,我的问题是 - 如何正确设置友元以便 ValueSet 可以访问 mSetValue 数组?

最佳答案

友元函数不是类的成员。所以在你的情况下,如果你想在 ValueSet 中使用 mSetValue 那么你必须通过实例或“对象”提供对 mSetValue 的一些访问那个类(class)。这可以通过将 ValueSet() 函数声明为

来完成
friend void ValueSet(ScoreBoard &sb);

你的定义是

void ValueSet(ScoreBoard &sb)
{
char lPick;
std::cin >> lPick;
if (lPick == 1)
sb.mSetValue[0] = true;
}

关于c++ - 好友功能和 protected 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com