// system include files // #include #include // define a simple class // class Toaster { public: // define contants // static const float DEF_WEIGHT; // define protected data // protected: // define some data // char* str_d; long len_d; long width_d; float weight_d; // define public functions // public: // constructor // Toaster(float weight_a = DEF_WEIGHT) { str_d = new char[10]; len_d = (long)0; width_d = (long)0; weight_d = weight_a; fprintf(stdout, "hello1... def constructor (%f)\n", weight_d); } // constructor // Toaster(long len_a) { str_d = new char[10]; len_d = len_a; fprintf(stdout, "hello2... long constructor (%d)\n", len_d); } // default destructor // ~Toaster() { fprintf(stdout, "... deallocating memory ...\n"); if (str_d != (char*)NULL) { delete [] str_d; str_d = (char*)NULL; } } // define some functions // bool display(FILE* fp, char* delim, long val); bool display(FILE* fp_a = stdout) { return display(fp_a, (char*)"Joe", (long)27); } bool display(Toaster arg_a) { arg_a.display(stdout); return true; } bool set_value(long len_a = 39, long width_a = 27, float weight_a = 99.9); // create some add methods // Toaster add(Toaster& arg1); Toaster add(Toaster& arg1, Toaster& arg2); // operator overload: + // Toaster operator + (Toaster const &obj) { fprintf(stdout, "... adding two toasters using an operator overload ...\n"); Toaster tmp; tmp.len_d = len_d + obj.len_d; return tmp; } // operator overload: - // Toaster operator - (Toaster const &obj) { fprintf(stdout, "... subtracting two toasters using an operator overload ...\n"); Toaster tmp; tmp.len_d = len_d - obj.len_d; return tmp; } // method: add // bool add(Toaster const &obj2) { fprintf(stdout, "... method: adding two toasters ...\n"); len_d = len_d + obj2.len_d; return true; } // define private functions // private: // define a function that does nothing // bool status(FILE* fp); // end of class };