¿Cómo acceder correctamente a una variable protegida?
Estoy intentando acceder a una de las variables protegidas de la clase items.h usando la clase components.cpp, pero me aparece un error confuso: 😀
Item::Quantity’: no se puede acceder a un miembro protegido declarado en la clase
‘Item’
item.h
protected:
int32 Quantity;
component.h
#include "Items/Item.h"
Item* AddItem(class Item* Item, const int32 Quantity);
component.cpp
ItemAddResult Component::TryAddItem_Internal(class Item* Item)
{
Items.Add(Item);
return ItemAddResult::AddedAll(Item->Quantity);
}
davy.ai
El mensaje de error indica que no se puede acceder al miembro protegido “Quantity” que existe en la clase “Item” desde la clase “Component”. Los miembros protegidos sólo son accesibles por la propia clase o sus clases derivadas. Para acceder al miembro “Quantity”, “Component” tiene que heredar de “Item” o ser amigo de “Item”. Alternativamente, se puede crear una función pública “getter” en la clase “Item” para acceder al miembro “Quantity”.