Вопросы по теме 'upcasting'

Можно ли преобразовать объект в более высокий класс снова, не пытаясь выполнить приведение для каждого типа производного класса от типа базового класса?
У меня есть случай, когда мне дается набор объектов, которые происходят от одного и того же базового класса. Если я перебираю коллекцию и проверяю тип каждого элемента, я вижу, что объект имеет производный тип, и затем обрабатываю его соответствующим...
220 просмотров
schedule 20.10.2022

Приведение производного класса к одной из баз через базовый указатель
РЕДАКТИРОВАТЬ: Хорошо, как я теперь вижу, это сильно меняет случай, поэтому более точный сценарий таков: Текущая иерархия в чем-то похожа на эту: class IBase() { virtual void Foo() = 0; }; class Base() : public IBase { virtual void Foo() { }...
174 просмотров
schedule 15.10.2023

Путаница с повышением и понижением в Java
Хорошо. Так что если... int x=3; int y=5; x=y; Получается x=5 , верно? Итак, если B является подклассом A ... A a=new A(); B b=new B(); a=b; ^^^Почему это считается преобразованием? Разве «а» не должно стать «б», а не...
2289 просмотров
schedule 02.07.2023

Когда `static_cast‹Base*›(static_cast‹void*›(derived))` из указателя на производный класс действителен?
В этом вопросе не должно быть полиморфизма, т.е. никаких виртуальных методов, никаких виртуальных базовых классов. На всякий случай, если это имеет значение, мой случай не связан ни с одним из них. Предположим, у меня есть класс Derived , у...
167 просмотров
schedule 08.11.2022

Преобразование C++ из множественного наследования; источник не полиморфен
Я новичок в С++. У меня есть два чистых абстрактных класса (например, интерфейсы), и я получаю класс из этих двух чистых абстрактных классов. В одном случае мне нужно преобразовать указатель производного класса в один из базовых абстрактных...
661 просмотров

Структура памяти множественного наследования после преобразования
Я изучаю свою лекцию по C++, и профессор показывает слайд с этим примером кода. Он говорит, что, поскольку b1 является первым родителем (так что я думаю, что он реализован первым?), он имеет тот же адрес памяти, что и дочерний класс (Mi). Тогда я...
26 просмотров