У меня проблема с одним из моих заданий на c ++. Это больше вопрос теории. Вот код:
//a class implementation
class IntArrays {
public:
IntArrays(int n): data(new int[n]), size(n) { }
~IntArrays() { delete[] data; };
const int& operator[](int n) const
{ return data[n]; }
IntArrays(const IntArrays& ar):
data(new int[ar.size]),
size(ar.size) {
std::copy(data, data + size, ar.data);
}
private:
int* data;
int size;
};
//a driver
int main()
{
IntArrays a(100);
IntArrays b = a; // Problem!
return 0;
}
In 1-2 sentences, explain why the second line of the driver program is problematic.
Я действительно не знаю, что за ошибка во второй строке драйвера, потому что, когда я запускаю его, все нормально. Сначала я подумал, что это потому, что оператор = не был перегружен, но IntArrays b = a использует конструктор копирования, так что это не так. Я полностью сбит с толку, пожалуйста, помогите. Это очень беспокоит меня, если я не получу ответ.
спасибо заранее.