Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > наследование


Автор: Bibigon 23.11.2002, 09:58
Есть класс А содержащий указатель ptr на массив элементов.
В классе А функция addItem при добавлении проверяет если массив заполнен то увеличивает его в 2 раза

void A::addItem(T rtItem)
{
if(nLastIndex == nSize)
{  
T* TempArray = new T[2*nSize];
//************************************************************
// memcpy(TempArray,ptrData,nSize);

for(int i = 0;i<nLastIndex;i++)
*(TempArray + i) = *(ptrData + i);
//************************************************************

delete []ptrData;

ptrData = TempArray;
nSize = 2*nSize;
}
*(ptrData + nLastIndex) = rtItem;
nLastIndex++;
}
}

Автор: Bibigon 23.11.2002, 10:08
внутри я отметил два варианта копирования массива
через memcpy и через цикл for
так вот при наследовании от А вариант с memcpy не работает
не могу понять почему

Автор: seagull 2.12.2002, 09:43
Скорей всего елементы массива занимают больше чем 1 байт.

А memcpy() копирует лишь nSize байтов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)