如何正确访问受保护的变量



我正试图使用components.cpp类访问items.h类别中的一个受保护变量,但我遇到了让我困惑的错误::D

Item::Quantity':无法访问类中声明的被禁止的受保护成员"项目">

项目.h

protected:
int32 Quantity;

组件.h

#include "Items/Item.h"
Item* AddItem(class Item* Item, const int32 Quantity);

组件.cpp

ItemAddResult Component::TryAddItem_Internal(class Item* Item)
{
Items.Add(Item);
return ItemAddResult::AddedAll(Item->Quantity);
}

您可以通过在类Item中添加friend声明使类Component成为类Itemfriend来解决此问题,如下所示:

项目.h

class Item{
friend class Component;
protected: 
int32 Quantity;
//other members here
}

最新更新