2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
1 | ||||||
Отличие приведение типов указателей29.02.2016, 17:28. Показов 1066. Ответов 8
Метки нет (Все метки)
Чем отличаются при
Base* a_ptr = new Derivered(); следующие строки:
Мои предположения: 1) если в A тип a_ptr не находится в иерархии с Derivered - UB 2) если Base в B не имеет VTABLE ошибка компиляции 3) если в В оба виртуальных типа, но Base и Derivered не в одной ветке иерархии - вернёт nullptr, когда UB Что я пропустил?
0
|
29.02.2016, 17:28 | |
Ответы с готовыми решениями:
8
приведение типов указателей Приведение типов умных указателей Различия указателей char* от указателей других типов Приведение указателей |
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
|
|
29.02.2016, 18:55 | 2 |
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
29.02.2016, 19:18 | 3 |
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
29.02.2016, 21:33 [ТС] | 4 |
Да там опечатка.
new Derived
0
|
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
01.03.2016, 00:05 | 5 |
static_cast - это наиболее безопасный компайл тайм каст ->
Посыпаю голову пеплом, конечно может быть ub. Вот в этом случае будет не ub а ошибка компиляции.
1
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
01.03.2016, 11:13 [ТС] | 7 |
Kastaneda, там вырезалась фраза - когда у конкурента UB
Nosey, так вы чтоли рекомендуете использовать статик_каст в местах, где надо динамик_каст?
0
|
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
01.03.2016, 12:49 | 8 |
Не по теме: Удалите меня с форума :rofl:, а-то пишу всякую недодуманую чушь:-[ Это идеальная рекомендация, но недостижимая - избавляться от динамик каста. Если не находится в иерархии подразумевает статическое не нахождение в иерархии, то компилятор выдаст ошибку компиляции.Если же в рантайме окажется, что a_ptr не дорос до Derived - будет ub.
0
|
rikimaru2013
|
|||||
01.03.2016, 13:53
[ТС]
Отличие приведение типов указателей
#9
|
|||||
Не по теме: Nosey, Nosey, всё для тебя !
0
|
01.03.2016, 13:53 | |
Приведение указателей Отличие инкриментов указателей Приведение указателей в стиле си Неявное приведение указателей на классы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |