63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
1 | |
Почему я могу использовать this в конструкторе?04.09.2020, 16:26. Показов 2123. Ответов 4
Метки нет (Все метки)
Почему я могу использовать this в конструкторе? this - это указатель на объект, объект сконструирован если отработает его конструктор , то почему я могу использовать this в теле конструктора? Т.е. до того как объект будет сконструирован?
Добавлено через 1 минуту да и вообще откуда он берется в конструкторе, он же неявно передается методам как параметр
0
|
04.09.2020, 16:26 | |
Ответы с готовыми решениями:
4
Почему нельзя в конструкторе использовать параметр по умолчанию, если конструктор не встроен? Почему не могу использовать метод? Почему иногда не могу использовать forward declaration Не пойму почему в процедуре не могу использовать объект |
2528 / 1247 / 461
Регистрация: 08.11.2016
Сообщений: 3,428
|
|
04.09.2020, 16:36 | 2 |
Сообщение было отмечено ReYalp как решение
Решение
ReYalp, память под экземпляр класса выделяется не в конструкторе, на момент вызова конструктора объект уже существует и все его поля объявлены
1
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
04.09.2020, 16:42 | 3 |
1
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
04.09.2020, 17:03 | 4 |
RAII - захват ресурса есть инициализация.
суть: сначала всегда выделяем память под объект, и только затем вызываем его конструктор. итого: к моменту запуска конструктора вся необходимая память уже выделена. а значит this хранит реальный валидный адрес объекта. и его можно использовать. но важно понимать: пока конструктор не завершил свою работу, объект ещё не до конца подготовлен к работе.
1
|
Комп_Оратор)
|
|
04.09.2020, 20:27 | 5 |
Del
0
|
04.09.2020, 20:27 | |
04.09.2020, 20:27 | |
Помогаю со студенческими работами здесь
5
Почему в visual studio не могу использовать тип _Bool? Как QGraphicsView использовать в конструкторе Как в конструкторе If использовать глобальные переменные Как в конструкторе класса вместо коллекции List использовать IEnumerable Почему пропадают элементы в конструкторе формы? Почему в конструкторе QMAinQindow нельзя обрабатывать исключения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |