Описан класс. Не понимаю двух моментов:
void*, когда пользуешься memcpyconst?Код привожу ниже:
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, а также не может вызывать неконстантные методы этого же класса.
В целом класс написан плоховато, стиль на троечку. Не то, что стоит изучать в качестве примера.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости