// Programa clas28.cpp de exemplo para ilustrar conceitos de // sobrecarga de operadores (exemplo 2) // Original do livro TURBO C++ SCHILDT pg 433 #include #include class str_tipo { char string [80]; public: str_tipo(char *str = "\0") {strcpy(string, str);} str_tipo operator+(str_tipo str); str_tipo operator+(char *str); str_tipo operator=(str_tipo str); str_tipo operator=(char *str); void exibe_str(void) { cout << string; } }; str_tipo str_tipo::operator+(str_tipo str) { str_tipo temp; strcpy(temp.string, string); strcat(temp.string, str.string); return temp; } str_tipo str_tipo::operator=(str_tipo str) { strcpy(string, str.string); return *this; } str_tipo str_tipo::operator=(char *str) { str_tipo temp; strcpy (string, str); strcpy (temp.string, string); return temp; } str_tipo str_tipo::operator+(char *str) { str_tipo temp; strcpy(temp.string, string); strcat(temp.string, str); return temp; } main (void) { str_tipo a("Alo"), b(" A todos"), c; c = a + b; c.exibe_str(); cout << "\n"; a = "de programar porque"; a.exibe_str(); cout << "\n"; b = c = "C++ e' facil"; c = c + " " + a + " " + b; c.exibe_str(); return 0; } // Alo A todos // de programar porque // C++ e' facil de programar porque C++ e' facil