I have a bag:
and I am trying to call the roll() function of the die class through a bag object's getItem() function, getItem simply returns data[element] (a single die in this case)...however, using this line of code:Code:class bag { public: // TYPEDEFS and MEMBER CONSTANTS typedef Die value_type; typedef std::size_t size_type; static const size_type CAPACITY = 30; // CONSTRUCTOR bag( ) { used = 0; } // MODIFICATION MEMBER FUNCTIONS size_type erase(const value_type& target); bool erase_one(const value_type& target); void insert(const value_type& entry); void operator +=(const bag& addend); // CONSTANT MEMBER FUNCTIONS size_type size( ) const { return used; } size_type count(const value_type& target) const; value_type getItem(int element) const; private: value_type data[CAPACITY]; // The array to store items size_type used; // How much of array is used };
does not alter the face value at all, here's roll():Code://Roll the dice in rollingDice and add face value to sumFace for (int i = 0; i < numRoll; ++i) { rollingDice.getItem(i).roll(); cout << rollingDice.getItem(i).getFace(); //sumFace = sumFace + rollingDice.getItem(i).getFace(); }
and I am completely confused as to why the face value of the Die within the Bag is not being altered...any idea why this is happening?Code:void Die::roll() { int randNum = genRand(1, numSides); setFace(randNum); }



LinkBack URL
About LinkBacks


