fork(1) download
  1. #include <iostream>
  2. #include <string.h> // для функций strcpy, strcat
  3. #include <stdlib.h> // для функции exit
  4. using namespace std;
  5.  
  6. class String
  7. {
  8. private:
  9. enum { SZ = 80 };
  10. char str[SZ];
  11. public:
  12. String()
  13. {
  14. strcpy(str, "");
  15. }
  16. String(char s[])
  17. {
  18. strcpy(str, s);
  19. }
  20. void display() const
  21. {
  22. cout << str;
  23. }
  24. String operator += (String ss) const
  25. {
  26. String temp;
  27. if (strlen(str) + strlen(ss.str) < SZ)
  28. {
  29. strcpy(temp.str, str); // копируем содержимое первой строки
  30. strcat(temp.str, ss.str);// добавляем содержимое второй строки
  31. }
  32. else
  33. {
  34. cout << "\nПереполнение!";
  35. exit(1);
  36. }
  37. return temp; // возвращаем результат
  38. }
  39. };
  40.  
  41. int main()
  42. {
  43. system("chcp 1251 > nul");
  44.  
  45. String s1 = "\nHappy New Year! "; /* Ошибка: не существует подходящего конструктора для переобразования из "const char[19]" в "String" */
  46. String s2 = "Merry Christmas!";
  47. String s3;
  48. s1.display();
  49. s2.display();
  50. s3.display();
  51.  
  52. s3 = s1 += s2;
  53.  
  54. s3.display();
  55. cout << endl;
  56. cin.get();
  57. return 0;
  58. }
Success #stdin #stdout #stderr 0s 4464KB
stdin
Standard input is empty
stdout
Happy New Year!  Merry Christmas!
Happy New Year!  Merry Christmas!
stderr
sh: 1: cannot create nul: Permission denied
sh: 1: chcp: not found