Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
5 / 5 / 1
Регистрация: 20.11.2017
Сообщений: 51

Down-cast: объяснить нюансы нисходящего преобразования типов

28.06.2018, 23:41. Показов 1318. Ответов 2

Студворк — интернет-сервис помощи студентам
Скажите, пожалуйста, если я сделаю bad down-cast при помощи static_cast:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Base{
public:
int x;
int y;
 
};
 
class Derived:public Base{
public:
int z;
 
};
 
int main(){
Base* pB=new Base;
Derived* pD=static_cast<Derived*>(pB);
 
return 0;
}
то при обращении к полям через pD,моя IDE выкидывает список: x,y,z - что собственно логично, ведь компилятор ориентируется на тип указателя, а не на фактический, а тип указ- Derived. При записи значений в z, я обращаюсь к запрещенному адресу что ли? По которому я по-сути доступ не должен иметь.Так? Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2018, 23:41
Ответы с готовыми решениями:

Объяснить нюансы работы массивов разных типов в С++
Уважаемые программисты, недавно начал изучать C++ и наткнулся на очень интересный вопрос. Надеюсь вы мне поможете с ним разобраться. Вопрос...

Объяснить преобразования типов
Добрый день, можете объяснить последовательность дейстий, что происходит в ходе преобразований. unsigned short x = 1; cout &lt;&lt;...

Объяснить нюансы работы препроцессора
Скажите, если препроцессор вещь не интеллектуальная ведь? Он просто работает на уровне текстовых файлов? Допустим, я в заголовочном...

2
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
29.06.2018, 00:17
Цитата Сообщение от prado777 Посмотреть сообщение
При записи значений в z, я обращаюсь к запрещенному адресу что ли?
К невыделенной области памяти. Примерно то же самое что обратиться к элементу массива, номер которого больше размера массива. Тоже можно, но если операционная система это заметит, то выбросит исключение твоей программе. И будет твоя программа довольно редко, но вылетать.
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
29.06.2018, 11:37
Цитата Сообщение от prado777 Посмотреть сообщение
я обращаюсь к запрещенному адресу что ли?
ога
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2018, 11:37
Помогаю со студенческими работами здесь

Объяснить нюансы использования литералов-перечислителей
Почему в Си не допускается, чтобы один и тот же литерал-перечислитель входил в два различных перечислимых типа? Могут ли совпадать имена...

Объяснить нюансы работы функции CreateDirectory()
что в даном куске кода обозначает 0 насколько я понял данный оператор создает папуку в месте a.w_str(), и еще для чего то параметр null ...

Объяснить назначение и нюансы работы функции strtok()
Что делает это? for (char *p = strtok(str, del); p; p = strtok(NULL, del)) а именно ; p; p = strtok(NULL, del))

Объяснить нюансы оптимизации заданного фрагмента кода
Наткнулся на статью по оптимизации кода на C++http://itw66.ru/blog/c_plus_plus/13.html]ссылка Есть там 10-й пункт: SomeClass* p; -...

Считывание структуры из файла: объяснить нюансы работы кода
есть функция, которая должна из файла считывать значения полей элементов массива структур и инициализировать эти поля этими значениями, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru