Мне нужна помощь, пытаясь заставить это работать должным образом. Предполагается, что программа отображает номера массивов и число 78 для одного из индексов. Я не получаю ошибок компилятора при попытке запустить его, но он мгновенно закрывается из программы.Попытка исправить мои заметки по классу
class Vector
{
public:
Vector (int number_of_elements);
int num;
int *p;
};
int main()
{
Vector va(10);
va.p = new int[va.num];
for (int i = 0; i < va.num; i++)
{
va.p[i]=i;
for (int i = 0; i < va.num; i++)
{
cout << va.p[i] << endl;
}
}
Vector vb(va);
vb.p[0] = 78; //if you switch these 3 lines with the 3 above 78 gets printed out everyline
for (int i = 0; i < vb.num; i++)
{
cout << vb.p[i] << endl;
}
return 0;
}
Vector::Vector(int number_of_elements)
{
num = number_of_elements;
}
Возможно, это мгновенно закрывает программу, потому что программа закончилась слишком быстро. Почему бы не добавить ключ для чтения или что-то подобное в конце main(), поэтому программа ждет нажатия клавиши, так что у вас есть время, чтобы увидеть результат? – Pavlin
Я не вижу никаких вопиющих ошибок, но (i) почему бы не инициализировать буфер данных 'p' в конструкторе, (ii)« удалить »любую память, выделенную в деструкторе, (iii) знать, что' vb (va) 'будет принимать только мелкую копию' va'. – Bathsheba