// file: foo.cc // // system include files // #include #include // define a simple class // class Toaster { protected: // define some data // char* str_d; long len_d; long width_d; float weight_d; // define some simple functions // public: Toaster(float arg = (float)27.0) { str_d = (char*)NULL; len_d = (long)0; width_d = (long)0; weight_d = arg; fprintf(stdout, "this is the constructor with a float (%f)\n", arg); } Toaster(long arg) { str_d = new char[10]; len_d = arg; width_d = (long)0; weight_d = (float)0.0; fprintf(stdout, "constructor with integer arg (%d)\n", arg); } ~Toaster() { fprintf(stdout, "... deallocating memory ...\n"); if (str_d != (char*)NULL) { delete [] str_d; str_d = (char*)NULL; } } /* Toaster(float weight_a, long len_a = 27) { len_d = len_a; width_d = (long)0; weight_d = (float)weight_a; fprintf(stdout, "default constructor: weight/len = %f %d\n", weight_d, len_d); } */ long get_len() { return len_d; } long get_width() { return width_d; } float get_weight() { return weight_d; } // define some functions // bool display(FILE* fp, char*); bool set_values(long len, long width = (long)999, float weight = 49.0); bool set_values(long len, long width = (long)-1); // demonstrate an overloaded function // // bool compare(Toaster arg1); // bool compare(Toaster* arg1); // bool compare(Toaster& arg1); private: // end of class }; // define a main program // int main(int argc, char** argv) { // declare an object // Toaster kitchenaide; Toaster kitchenaide2((float)99.0); Toaster kitchenaide3((long)-1); // set some values // kitchenaide.set_values(1, 2, 3.0); kitchenaide.set_values(27); kitchenaide.set_values(33, -5); kitchenaide.display(stdout, (char*)"kitchenaide"); // print some stuff // // bosch.display(stdout, (char*)"bosch"); // exit gracefully // return(0); } // method: display() // bool Toaster::display(FILE* fp, char* str) { // print the contents // fprintf(fp, "object name: %s\n", str); fprintf(fp, "length = %d\n", len_d); fprintf(fp, "width = %d\n", width_d); fprintf(fp, "weight = %f\n", weight_d); // exit gracefully // return true; } // method: set_values() // bool Toaster::set_values(long len_a, long width_a, float weight_a) { // assign values // len_d = len_a; width_d = width_a; weight_d = weight_a; // exit gracefully // return true; } // method: set_values() // bool Toaster::set_values(long len_a, long width_a) { // assign values // len_d = len_a; width_d = width_a; // exit gracefully // return true; }