1: // Created by Frank M. Carrano and Tim Henry.
2: // Copyright (c) 2013 __Pearson Education__. All rights reserved.
4: /** @file MagicBox.cpp */
6: #include "MagicBox.h"
8: template<class ItemType>
9: MagicBox<ItemType>::MagicBox()
10: {
11: PlainBox<ItemType>();
12: firstItemStored = false; // Box has no magic initially
13: } // end default constructor
15: template<class ItemType>
16: MagicBox<ItemType>::MagicBox(const ItemType& theItem)
17: {
18: firstItemStored = false; // Box has no magic initially
19: setItem(theItem);
20: // Box has magic now
21: } // end constructor
23: template<class ItemType>
24: void MagicBox<ItemType>::setItem(const ItemType& theItem)
25: {
26: if (!firstItemStored)
27: {
28: PlainBox<ItemType>::item = theItem; // item has protected access
29: firstItemStored = true; // Box now has magic
30: } // end if
31: } // end setItem