Я пытаюсь динамически создавать массив объектов, а затем использовать функции-члены объектов в массиве. Я пробовал пару комбинаций, но разбил свою программу, когда я пытаюсь вызвать элемент отображения на объекты в массиве.Функция доступа из массива объектов
Something * pSomethings[12] = { NULL }; //pointer to array of 12 Somethings
to load the array I use:
Something * pSomething; //create a temp pointer of Something
pSomething = pSomethings[0]; //assign temp pointer to first item in array
pSomething = new Widget(size, weight);//pSomthings[0] should be a new widget
cout << pSomething->getSize(); //seeing if data member was set (shows correct)
cout << pSomething->getWeight(); //seeing if data member was set (shows correct)
when I try to invoke the following my program breaks:
Something::display(){
Something * pSomething; //create another local temp pointer
pSomething = psomethings[0];//assign temp pointer to initialized pSomthing above
cout << pSomething->getSize(); // <---- breaks if run in main.
}
Я новичок в C++ и указателей в целом, так что я мог бы сделать очень простую ошибку, но я просто не понимаю, почему GETSIZE() правильно отображается в первой функции, но на дисплее() я создаю все одинаково (указатель темпа, присваивается одному и тому же индексу и т. д.), и я получаю сообщение об ошибке.
Это на самом деле массив из 12 указателей на что-то и не * указатель на массив из 12 Somethings *. –