Для приведенного ниже кода при вызове функции Func программа аварийно завершается. В чем причина ошибки? class Foo { char *buf; public: Foo(char *b = "default") { buf = new char[strlen(b) + 1]; strcpy(buf, b); } ~Foo() { delete[] buf; } }; Foo Func(Foo f) { return f; }
(Отметьте один правильный вариант ответа.)
Варианты ответа
функция должна возвращать Foo& (ссылку).
требуется переопределить операцию =.
значение конструктора по умолчанию имеет тип char*.
в классе отсутствует конструктор копирования.(Верный ответ)
выделяется недостаточный объем памяти.