0

RUS: int *p = new int(); Что делает значение в скобках? И где можно это применить?

9th Sep 2018, 12:40 PM
FeatheredEmperor
FeatheredEmperor - avatar
8 odpowiedzi
+ 1
Параметры конструктора. В данном случае дефолтного конструктора копирования типа int, который копирует 5 из своего аргумента со стека в создаваемый объект в куче. (на самом деле там немного другой конструктор, но рассказ о то, что такое r-value reference слишком долгий и сложный). Адрес созданного объекта возвращается оператором new и оператором = помещается в переменную p, расположенную на стеке (на самом деле тут тоже будет вызван конструктор копирования для типа int*, но это уже тонкости).
10th Sep 2018, 6:18 PM
Sergey Ushakov
Sergey Ushakov - avatar
+ 1
Это вызов конструктора. Если конструктор ккласса принимает аргументы то тут их и передают.
9th Sep 2018, 12:52 PM
Sergey Ushakov
Sergey Ushakov - avatar
+ 1
Кажется это просто присваивание значения через указатель( я только учусь :-D)
9th Sep 2018, 12:56 PM
FeatheredEmperor
FeatheredEmperor - avatar
+ 1
Это создание объекта в куче. Чтобы создать объект где бы то ни было, нужно позвать его конструктор.
9th Sep 2018, 1:39 PM
Sergey Ushakov
Sergey Ushakov - avatar
0
Разве это не с указателями и динам. памятью связано?
9th Sep 2018, 12:54 PM
FeatheredEmperor
FeatheredEmperor - avatar
0
А значение в скобках? ()
10th Sep 2018, 4:23 PM
FeatheredEmperor
FeatheredEmperor - avatar
0
к примеру int *p = new int(5)
10th Sep 2018, 4:23 PM
FeatheredEmperor
FeatheredEmperor - avatar
0
Спасибо, теперь я понял про что Вы писали)
15th Sep 2018, 8:00 AM
FeatheredEmperor
FeatheredEmperor - avatar