Table Of Contents
Previous Section Next Section

Program 36: Stacked Too High

Why does this program run out of stack space?

  1 /************************************************
  2  * test the data_holder class.                  *
  3  ************************************************/
  4 #include <iostream>
  5 /************************************************
  6  * data_holder -- A class to hold a single      *
  7  *      integer                                 *
  8  *                                              *
  9  * Member functions:                            *
 10  *      get -- Get value                        *
 11  *                                              *
 12  * Note: By default the value of the data is 5. *
 13  *                                              *
 14  * Warning: More member functions need to be    *
 15  * added to this to make it useful.             *
 16  ************************************************/
 17 class data_holder {
 18     private:
 19         int data;       // Data to store
 20     public:
 21         // Constructor -- Set value to default (5)
 22         data_holder(void):data(5) {};
 23
 24         // Destructor defaults
 25         //
 26         // Copy constructor
 27         data_holder(const data_holder &old) {
 28            *this = old;
 29         }
 30
 31         // Assignment operator
 32         data_holder operator = (
 33                 data_holder old_data_holder) {
 34             data = old_data_holder.data;
 35             return (*this);
 36         }
 37
 38         // Get the data item
 39         int get(void)
 40         {
 41             return (data);
 42         }
 43 };
 44
 45 int main() {
 46     // A data holder
 47     data_holder var1;
 48
 49     // Copy of a data holder
 50     data_holder var2(var1);
 51     return (0);
 52 }

(Next Hint 53. Answer 12.)

Table Of Contents
Previous Section Next Section