Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 07.07.2018, 18:18   #1
luminoforest
 
Регистрация: 17.04.2018
Сообщений: 9
Репутация: 10
По умолчанию указатель при приведении в множ. наследовании

мне понятно, почему С-style приведение в данном случае поведёт себя как reinterpret_cast, изменив тип с B* на С* но не сделав "сдвиг указателя". как представляется тип C в памяти тоже вроде бы представляю - и тут вопрос, разве изменение типа указателя не будет происходить именно как сдвиг? как это будет проявляться ?
Код:

struct A;
struct B;
struct C;

C * f(B * b){
    return (C *)b;  // (reinterpret_cast)
}

struct A{
    int a;
}

struct B {};

struct C : A, B
{};

luminoforest вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиморфизм и вызов функции при наследовании Даша1046 Общие вопросы C/C++ 6 02.06.2015 00:03
Проблема с методом при наследовании rommster Общие вопросы C/C++ 7 15.09.2011 18:56
ГЛЮКИ при наследовании фреймов Delphi 7 AnTe Компоненты Delphi 3 10.12.2010 10:02
Как вызываются конструкторы объектов при наследовании? TwiX Общие вопросы C/C++ 10 17.11.2010 14:59
Перегрузка == при наследовании paramon Общие вопросы C/C++ 5 17.06.2008 00:17


06:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru