Step 12 (S-10181)

From Stepik Wiki
Revision as of 16:34, 17 March 2017 by Admin (Talk | contribs) (Create page for step id=10181)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/546/step/12

Реализованные в предыдущих заданиях конструкторы и деструктор берут на себя работу по управлению ресурсами. Теперь можно дополнить структуру String различными полезными методами. 

Для работы со строками можно придумать множество полезных методов (подумайте, какие методы пригодились бы вам, и чего вам не хватает для их реализации). Примером такого метода может послужить метод append — он добавляет копию строки-аргумента в конец текущей строки (т.е. в конец строки, у которой он был вызван).

String s1("Hello,");
String s2(" world!");

s1.append(s2); // теперь s1 хранит "Hello, world!"


Ваша задача реализовать метод append.

При выполнении задания будьте аккуратны при работе с памятью — при вызове метода не должно возникать утечек памяти. Кроме того, не забудьте, что size хранит размер без учета завершающего 0 символа.

Требования к реализации: при реализации вы можете заводить любые вспомогательные функции и методы. В шаблоне вы увидите объявления уже известных вам конструкторов и деструкторов, реализовывать их заново не нужно, они уже реализованы. Вводить или выводить что-либо не нужно. Реализовывать main не нужно. Для работы с памятью не используйте функции из cstdlib (malloc, realloc, calloc и free).

Кроме того, ваша реализация должна корректно работать в следующем тесте:


String s("Hello");
s.append(s); // теперь s хранит "HelloHello"