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

Можно ли присвоить объект базового класса ссылке на производный класс с явным приведением типов?
Можно ли присвоить объект базового класса ссылке на производный класс с явным приведением типов в C#?. Я попробовал это, и это создает ошибку времени выполнения.
135004 просмотров

Почему динамическое приведение базовых к производным разрешено только для полиморфных классов
Возможный дубликат: Часто задаваемые вопросы: Почему dynamic_cast работает только в том случае, если у класса есть хотя бы 1 виртуальный метод? Я читал, что в С++, выполняя динамическое приведение по иерархии набора классов, приведение...
2534 просмотров
schedule 01.02.2022

Понижение экземпляра Graphics — почему это разрешено?
Я пытаюсь понять, почему разрешено преобразовывать экземпляр Graphics в экземпляр Graphics2D. Обычно запрещается понижать ссылочный тип, который не наследует целевой тип . В графических классах иерархия выглядит следующим образом: Графика...
352 просмотров
schedule 30.11.2022

Метод С++ для приведения между различными шаблонными версиями класса
Итак, у меня есть один шаблонный класс B , который наследуется от нешаблонного класса A . Теперь эта шаблонная версия B имеет набор из четырех допустимых и известных классов шаблонов, назовите их B<uint8_t>, B<uint16_t>,...
108 просмотров
schedule 06.01.2023

Преобразование в чужой класс без элементов данных
Рассмотрим следующий код: struct A { int m; }; struct B : A { void proc () { /* ... */ }; struct C : A { void proc () { /* ... */ }; A a; B * b = (B *) &a; C * c = (C *) &a; b->proc (); c->proc (); Это законно и четко...
67 просмотров
schedule 18.01.2023

Приведение производного к базе, а затем приведение его к другому производному. Джава
Итак, у меня 3 класса. base derived1 производное от base derived2 производное от base Этот код говорит, что производный1 не может быть приведен к производному2, хотя я уже привел производный1 к базовому объекту? base temp =...
48 просмотров
schedule 24.07.2023

Как отказаться от неполиморфного виртуального базового класса?
Есть ли способ перейти от виртуального базового класса к производному классу, когда виртуальные функции не задействованы? Вот некоторый код, чтобы продемонстрировать, о чем я говорю: struct Base1 { int data; }; struct Base2 { char...
935 просмотров
schedule 28.11.2022

Почему это понижение не разрешено в java?
Допустим, у меня есть суперкласс Animal и подкласс Dog . Мы можем поднять вверх, сказав: Animal a = new Dog(); Мы НЕ МОЖЕМ унывать, говоря: Dog b = new Animal(); Так что я понимаю, что животное не ДОЛЖНО быть собакой. Но...
1597 просмотров
schedule 08.12.2023

Является ли это понижением неопределенности?
Рассмотрим этот пример, где базовый класс имеет несколько элементов данных, а производный предоставляет только дополнительный метод: struct TestBase { int x; TestBase() : x(5) {} }; struct TestDerived : public TestBase { void...
504 просмотров
schedule 23.06.2022

опущен от CLplacemark? в Clplacemark разворачивает только необязательный (swift2)
как исправить эту ошибку: "downcast from CLplacemark? to Clplacemark only unwraps optional" поэтому я использую этот код: if let p = CLPlacemark(placemark: placemarks.first as? CLPlacemark){} и измените массив меток [0], но не...
284 просмотров
schedule 18.10.2023

Расширить существующий класс C++
Я хотел бы добавить дополнительную функциональность без изменения существующего класса. Сказать, class base{ public: int i; base(){i = 1;} virtual void do_work(){ /*Do some work*/ } }; Если я хочу добавить к нему serialization...
9996 просмотров
schedule 29.08.2022

C++ Static_cast по указателю на виртуальный базовый класс
Примерно через 6 или 7 лет программирования почти исключительно на C++ я обнаружил, что: struct A { virtual ~A() = 0; // Abstract class }; A::~A() {} struct B : virtual A {}; int main() { A* a = new B;...
609 просмотров

Зачем нам нужны Upcasting и Downcasting в C#?
Предположим, у нас есть три класса: Shape, который является базовым классом, и два других класса, Circle и Text, которые наследуются от базового класса (Shape). Shape.cs namespace ObjectOriented { public class Shape { public int...
4767 просмотров
schedule 21.03.2023

Объекты Java с понижением, вызывающие подметод
Распечатка: Fruit Apple Golden Golden Я хочу знать, почему объект c.make() вызывает метод в class Golden вместо class Apple . Поскольку я думаю, что c является объектом класса Apple, в чем моя ошибка? Спасибо за внимание. public class...
77 просмотров
schedule 30.01.2023

Почему автоматическое понижение приведения не применяется к шаблонным функциям?
Кто-то задал этот вопрос о добавлении строки. Это string s; s = s + 2; не компилируется. Люди дали ответы, в которых говорилось, что operator+ определяется как функция шаблона, а operator+= - нет, поэтому автоматическое понижение (от int(2)...
243 просмотров
schedule 08.09.2022

static_cast этого в другой базовый класс
Является ли следующее использование static_cast в конструкторе «безопасным»? Для контекста я экспериментирую с оболочкой окна Win32, используя дизайн, основанный на политике. Часть этого включает в себя создание класса диспетчера путем...
66 просмотров

C # и WPF: возможно ли автоматическое снижение аргумента отправителя в зависимости от его типа внутри обработчика событий?
Обычно я знаю, какой конкретный элемент управления вызывает определенное событие, поэтому я могу сделать внутри обработчика событий ссылку на него путем ручного снижения его параметра отправителя, как это (при условии, что отправитель является...
85 просмотров
schedule 01.05.2023

Как мне получить доступ к геттерам и сеттерам из отдельного класса в основной класс (с понижением в С#)
Я знаю, как это сделать на Java, но C# работает неправильно. Я уверен, что упускаю что-то очевидное. Как видите, я хочу преобразовать питомца в собаку, если питомец не является собакой. Я думаю, что подавленный прав, но, возможно, это не так....
63 просмотров
schedule 18.09.2022

Повышение/понижение приведения в Java
Я пытаюсь понять восходящее и нисходящее приведение в Java, и меня смущает следующий сценарий (о моем коде, который приведен ниже): Во-первых, почему код не компилируется, когда я включаю строку myAnimal.bark(); , и во-вторых (при условии, что...
154 просмотров
schedule 21.12.2022