Source of MagicBox.cpp


  1: //  Created by Frank M. Carrano and Tim Henry.
  2: //  Copyright (c) 2013 __Pearson Education__. All rights reserved.

  4: /** Listing C1-7.
  5:  @file MagicBox.cpp */

  7: template<class ItemType>
  8: MagicBox<ItemType>::MagicBox()
  9: {
 10:    PlainBox<ItemType>();
 11:    firstItemStored = false; // Box has no magic initially
 12: } // end default constructor

 14: template<class ItemType>
 15: MagicBox<ItemType>::MagicBox(const ItemType& theItem)
 16: {
 17:    firstItemStored = false; // Box has no magic initially
 18:    setItem(theItem);
 19:    // Box has magic now
 20: } // end constructor

 22: template<class ItemType>
 23: void MagicBox<ItemType>::setItem(const ItemType& theItem)
 24: {
 25:    if (!firstItemStored)
 26:    {
 27:       PlainBox<ItemType>::setItem(theItem);
 28:       firstItemStored = true; // Box now has magic
 29:    } // end if
 30: } // end setItem