Добавление динамически распределенных объектов в массив указателей объектовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Добавление динамически распределенных объектов в массив указателей объектов

Сообщение Anonymous »

Я пытаюсь написать функцию класса, которую можно вызвать для динамического создания нового производного объекта и добавить этот объект в динамически распределенный массив, который хранит указатели на объекты базового класса. Если я запускаю функцию дважды, я могу получить доступ к объектеру [0], но доступ к объектеру [1] дает мне нарушения доступа к чтению. Кто -нибудь может сказать мне, почему это не хранит объекты соответствующим образом? < /p>

Объектив был динамически распределен с пространством для 10 объектов, поэтому в положении 1 есть место. Это происходит даже когда NewObject () называется только дважды. < /p>

//Array definition (outside of function):
Base* objectAry;
objectAry = new Derived[10]

//Function in question:
void Derived::newObject()
{
Derived* tempObject = NULL;
tempObject = new Derived;
objectAry[numObjects] = *tempObject;
numObjects++;
delete tempObject;
tempObject = NULL;
}
< /code>

При запуске простой функции, чтобы вернуть одну из переменных элемента полученного объекта: < /p>

Exception thrown: read access violation.
this->objectAry+1-> was 0x1.
< /code>

Очевидно, что я держу это неправильно, но я не уверен, как это работать.

Подробнее здесь: https://stackoverflow.com/questions/570 ... t-pointers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»