// strplus.cpp // перегрузка операции + для строк #include using namespace std; #include // для функций strcpy, strcat #include // для функции exit /////////////////////////////////////////////////////////// class String // наш класс для строк { private: enum { SZ = 80; } // максимальный размер строки char str [ SZ ]; // массив для строки public: // конструктор без параметров String ( ) { strcpy ( str, "" ); } // конструктор с одним параметром String ( char s [ ] ) { strcpy ( str, s ); } // показ строки void display ( ) const { cout << str; } // оператор сложения String operator+ ( String ss ) const { String temp; // временная переменная if ( strlen ( str ) + strlen ( ss.str ) < SZ ) { strcpy ( temp.str, str ); // копируем содержимое первой строки strcat ( temp.str, ss.str ); // добавляем содержимое второй строки } else { cout << "\nПереполнение!"; exit ( 1 ); } return temp; // возвращаем результат } }; /////////////////////////////////////////////////////////// int main ( ) { String s1 = "\nС Рождеством! "; // используем конструктор с параметром String s2 = "С Новым годом!"; // используем конструктор с параметром String s3; // используем конструктор без параметров // показываем строки s1.display ( ); s2.display ( ); s3.display ( ); s3 = s1 + s2; // присваиваем строке s3 результат сложения строк s1 и s2 s3.display ( ); // показываем результат cout << endl; return 0; }