Описан класс. Не понимаю двух моментов:
void*
, когда пользуешься memcpy
const
?Код привожу ниже:
class CDataArray {
private:
int* pData;
int NumEl;
public:
CDataArray(int* pArray, int n) {
NumEl = n;
pData = new int[n];
memcpy((void*)pData, (void*)pArray, 4 * NumEl);
};
CDataArray() {
NumEl = 0;
pData = NULL;
};
CDataArray(int n) {
pData = new int[n];
NumEl = n;
};
~CDataArray() {
if (NumEl > 0) delete[] pData;
};
int Size() const {
return NumEl;
}
int* GetPtr() const {
return pData;
}
};
Зачем приводить к типу void*, когда пользуешься memcpy
Незачем. Ошибкой это не является, просто бессмысленная операция.
У методов после их названия, для чего стоит const?
Таким образом объявляется метод, вызов которого не меняет состояния экземпляра класса. Такой метод не может изменять состояния полей, за исключением данных, объявленных с ключевым словом mutable
, а также не может вызывать неконстантные методы этого же класса.
В целом класс написан плоховато, стиль на троечку. Не то, что стоит изучать в качестве примера.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите почему не происходит замена, компилирует, но замена не происходит
может быть кто то сталкивался с подобным ? Есть эмулятор Raspberry Pi emulation for Windows https://sourceforgenet/projects/rpiqemuwindows/ Линукс запускается там Есть реальная...