#include <iostream>
#include <string.h> // для функций strcpy, strcat
#include <stdlib.h> // для функции exit
using namespace std;
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()
{
system("chcp 1251 > nul");
String s1 = "\nHappy New Year! "; /* Ошибка: не существует подходящего конструктора для переобразования из "const char[19]" в "String" */
String s2 = "Merry Christmas!";
String s3;
s1.display();
s2.display();
s3.display();
s3 = s1 += s2;
s3.display();
cout << endl;
cin.get();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+ICAgLy8g0LTQu9GPINGE0YPQvdC60YbQuNC5IHN0cmNweSwgc3RyY2F0CiNpbmNsdWRlIDxzdGRsaWIuaD4gICAvLyDQtNC70Y8g0YTRg9C90LrRhtC40LggZXhpdAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgU3RyaW5nICAgICAgICAgIAp7CnByaXZhdGU6CiAgICBlbnVtIHsgU1ogPSA4MCB9OyAKICAgIGNoYXIgc3RyW1NaXTsgICAgIApwdWJsaWM6CiAgICBTdHJpbmcoKQogICAgewogICAgICAgIHN0cmNweShzdHIsICIiKTsKICAgIH0KICAgIFN0cmluZyhjaGFyIHNbXSkKICAgIHsKICAgICAgICBzdHJjcHkoc3RyLCBzKTsKICAgIH0KICAgIHZvaWQgZGlzcGxheSgpIGNvbnN0CiAgICB7CiAgICAgICAgY291dCA8PCBzdHI7CiAgICB9CiAgICBTdHJpbmcgb3BlcmF0b3IgKz0gKFN0cmluZyBzcykgY29uc3QKICAgIHsKICAgICAgICBTdHJpbmcgdGVtcDsgICAgICAgICAgICAgICAgIAogICAgICAgIGlmIChzdHJsZW4oc3RyKSArIHN0cmxlbihzcy5zdHIpIDwgU1opCiAgICAgICAgewogICAgICAgICAgICBzdHJjcHkodGVtcC5zdHIsIHN0cik7ICAgLy8g0LrQvtC/0LjRgNGD0LXQvCDRgdC+0LTQtdGA0LbQuNC80L7QtSDQv9C10YDQstC+0Lkg0YHRgtGA0L7QutC4CiAgICAgICAgICAgIHN0cmNhdCh0ZW1wLnN0ciwgc3Muc3RyKTsvLyDQtNC+0LHQsNCy0LvRj9C10Lwg0YHQvtC00LXRgNC20LjQvNC+0LUg0LLRgtC+0YDQvtC5INGB0YLRgNC+0LrQuAogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICJcbtCf0LXRgNC10L/QvtC70L3QtdC90LjQtSEiOwogICAgICAgICAgICBleGl0KDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGVtcDsgICAgICAgICAgICAgICAgIC8vINCy0L7Qt9Cy0YDQsNGJ0LDQtdC8INGA0LXQt9GD0LvRjNGC0LDRggogICAgfQp9OwoKaW50IG1haW4oKQp7CiAgICBzeXN0ZW0oImNoY3AgMTI1MSA+IG51bCIpOwoKICAgIFN0cmluZyBzMSA9ICJcbkhhcHB5IE5ldyBZZWFyISAgIjsgLyog0J7RiNC40LHQutCwOiDQvdC1INGB0YPRidC10YHRgtCy0YPQtdGCINC/0L7QtNGF0L7QtNGP0YnQtdCz0L4g0LrQvtC90YHRgtGA0YPQutGC0L7RgNCwINC00LvRjyDQv9C10YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0LjQtyAiY29uc3QgY2hhclsxOV0iINCyICJTdHJpbmciICovCiAgICBTdHJpbmcgczIgPSAiTWVycnkgQ2hyaXN0bWFzISI7ICAgCiAgICBTdHJpbmcgczM7ICAgICAgICAgICAgICAgICAgICAgIAogICAgczEuZGlzcGxheSgpOwogICAgczIuZGlzcGxheSgpOwogICAgczMuZGlzcGxheSgpOwoKICAgIHMzID0gczEgKz0gczI7CgogICAgczMuZGlzcGxheSgpOwogICAgY291dCA8PCBlbmRsOwogICAgY2luLmdldCgpOwogICAgcmV0dXJuIDA7Cn0=