Thread: How to use class object in other class

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Feb 2015
    Posts
    56

    How to use class object in other class

    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
    Last edited by CH1156; 08-29-2018 at 10:52 AM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 10
    Last Post: 05-22-2009, 11:12 PM
  2. Base-class pointer, accessing object from derived class
    By Korhedron in forum C++ Programming
    Replies: 15
    Last Post: 09-28-2008, 05:30 AM
  3. Replies: 8
    Last Post: 01-13-2008, 05:57 PM
  4. Replies: 3
    Last Post: 02-12-2002, 10:09 PM

Tags for this Thread