Repo for third homework on 2019/2020 C++ course
Вынести объявление класса User в отдельный заголовочный файл; его определение - в отдельный файл исходного кода. Убедиться, что существующий функционал не помер.
Вам требуется реализовать функцию конкатенации (склейки) двух C-style строк. Функция конкатенации принимает на вход две C-style строки и дописывает вторую в конец первой так, чтобы первая строка представляла из себя одну C-style строку равную конкатенации двух исходных. Не забудьте, что в результирующей строке должен быть только один нулевой символ — тот, что является маркером конца строки. Гарантируется, что в первой строке достаточно памяти (т.е. она располагается в массиве достаточной длины), чтобы разместить конкатенацию обеих строк, но не больше.
void strcat(char* to, const char* from)
{
……
}
Нужно реализовать функцию resize. Функция resize принимает на вход три аргумента: указатель на область памяти, выделенную с помощью оператора new[]
, размер области (size) и новый размер (new_size). Функция должна выделить память размера new_size, скопировать в нее данные из переданной области памяти, освободить старую область памяти и вернуть выделенную область памяти нового размера со скопированными данными.
Обратите внимание, что память, возвращенная из функции, будет освобождена с помощью оператора delete[]
. Несмотря на то, что входной тип данных — это сhar*
, не стоит рассчитывать, что там хранится C-style строка. При выполнении задания также учтите, что new_size может быть меньше size - тогда возвращайте нулевой указатель.
char* resize(char* str, unsigned size, unsigned new_size)
{
…
}
Отметьте максимальное количество методов класса User модификатором const, не потеряв логики работы класса.