Спасибо. И такой вопрос : есть ли разница в обучении в зависимости от сферы куда хочется двигаться. Будь то игры, или проги на платформы клепать, или машинное зрение какое-нибудь и и и. д. ??
res2001, весь код не могу выложить. Ошибку Я писал, вы ответили "Тут нет ошибки. Точка останова - это не ошибка."
Тогда ответьте на вопрос.
class A. базовый класс.
class B: public class A. Класс B производный.
Могу ли Я выделить память следующий образом:
A* obj;
obj = new B;
res2001, не помогает не указание размера, не переопределение.
Следующая ошибка :
void __CRTDECL operator delete(void* const block) noexcept
{
#ifdef _DEBUG
_free_dbg(block, _UNKNOWN_BLOCK);
#else
free(block);
#endif
}
И вылетает надпись, что мой проект exe вызвал срабатывание точки останова.
Mercury13, Я понял , что привязываются к переменной. Я другого не мог понять: почему адрес присваивается в одном случае указателю, а в другом случае *p, ведь * означает разыменованием.
А потом кажется понял. Поправьте если не прав.
В объявлении int *p; * означает просто то, что переменная p является указателем и все. И никакой роли больше не несёт функциональной.
А когда мы вне объявления пишем *p, здесь * означает конкретную операцию разыменования.
А значит в объявлении на * вообще можно не смотреть.
Mercury13, так как только изучаю C++, есть непонятные вещи. А указатели сложные довольно.
Вопрос. Есть два фрагмента:
1. int *p;
int a = 5;
p = &a;
Здесь все понятно. p = адрес a, *p = 5. Я p присваиваю адрес.
2. int a = 5;
int *p = &a;
А здесь, как вижу Я, *p = адрес a. Т.е. Я *p присваиваю адрес.
Но результат по факту одинаковый. Но во втором случае Я же присваиваю адрес не p, а *p.
Mercury13, И еще вопрос чтобы с указателями все понять.
1. int *i, p = 1;
i = &p;
Тогда вы выходе *i = 1, a i = адрес переменной p по типу 0x735348068ffc.
2. const char *i = "asd";
Здесь на выходе *i = a, i = asd, &i = адрес первого элемента массива.
Mercury13, это да, тут Я сам решаю делать эту переменную const или нет.
Но Я читал что и в массиве символов Я тоже могу не ставить const,
а вот если Я создаю именно указатель на символьную строку, то const необходим.
Видимо ошибся.