I have some classes and i'm trying to use an Item object in the Shop, I need to setup the items that can be sold but VS keeps giving me errors.
Code:
#include "pch.h"#include <iostream>
#include <string>
#include <map>
class Item
{
public:
Item(std::string itemName, int itemBaseValue)
: mItemName(itemName), mItemBaseValue(itemBaseValue){}
protected:
std::string mItemName;
int mItemBaseValue;
};
class Player
{
public:
std::string GetPlayerName() const
{
return mPlayerName;
}
int GetPlayerCredits() const
{
return mPlayerCredits;
}
private:
std::string mPlayerName;
std::pair<std::string, int> mPlayerAttackNameAndPower;
std::map<std::string, int> mPlayerInventory;
int mPlayerCredits; //Money
};
class Enemy
{
public:
Enemy(std::string enemyName, std::string enemyType, std::pair<std::string, int> enemyAttackNameAndPower)
: mEnemyName(enemyName), mEnemyType(enemyType), mEnemyAttackNameAndPower(enemyAttackNameAndPower){}
void GetEnemyName();
private:
std::string mEnemyName;
std::string mEnemyType;
std::pair<std::string, int> mEnemyAttackNameAndPower;
};
class Shop : public Item
{
public:
void CallShop(Item& itemName);
void CheckPlayerCreditBalance();
void ProcessTransaction(){}
private:
};
void Shop::CheckPlayerCreditBalance()
{
Player player;
if (player.GetPlayerCredits() >= mItemBaseValue)
{
ProcessTransaction();
}
else if (player.GetPlayerCredits() < mItemBaseValue)
{
std::cout << "You do not posess the credits required to purchase this item, you have:\n";
std::cout << player.GetPlayerCredits() << " and you need: " << player.GetPlayerCredits() - mItemBaseValue << " credits to purchase this item!\n";
}
}
void Shop::CallShop()
{
Item MedKit("Med Kit", 50);
std::cout << "Welcome to the shop, what would you like to buy?\n";
std::cout << "1) Med-Kit" << MedKit.mItemName << " C" << MedKit.mItemBaseValue << "\n";
}
int main()
{
return 0;
}
Errors:
Severity Code Description Project File Line Suppression State
Error (active) E0410 protected member "Item::mItemBaseValue" (declared at line 15) is not accessible through a "Item" pointer or object Dino Arena C:\Users\Chay\Desktop\Work\C++\Visual Studio Projects\Dino Arena\Dino Arena\Dino Arena.cpp 84
Error (active) E0410 protected member "Item::mItemName" (declared at line 13) is not accessible through a "Item" pointer or object Dino Arena C:\Users\Chay\Desktop\Work\C++\Visual Studio Projects\Dino Arena\Dino Arena\Dino Arena.cpp 84
Error C2248 'Item::mItemName': cannot access protected member declared in class 'Item' Dino Arena c:\users\chay\desktop\work\c++\visual studio projects\dino arena\dino arena\dino arena.cpp 84
Error C2248 'Item::mItemBaseValue': cannot access protected member declared in class 'Item' Dino Arena c:\users\chay\desktop\work\c++\visual studio projects\dino arena\dino arena\dino arena.cpp 84