Вопросы по теме 'downcast'
Можно ли присвоить объект базового класса ссылке на производный класс с явным приведением типов?
Можно ли присвоить объект базового класса ссылке на производный класс с явным приведением типов в C#?.
Я попробовал это, и это создает ошибку времени выполнения.
135004 просмотров
schedule
05.03.2022
Почему динамическое приведение базовых к производным разрешено только для полиморфных классов
Возможный дубликат: Часто задаваемые вопросы: Почему 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 просмотров
schedule
03.07.2022
Зачем нам нужны 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 просмотров
schedule
22.12.2023
C # и WPF: возможно ли автоматическое снижение аргумента отправителя в зависимости от его типа внутри обработчика событий?
Обычно я знаю, какой конкретный элемент управления вызывает определенное событие, поэтому я могу сделать внутри обработчика событий ссылку на него путем ручного снижения его параметра отправителя, как это (при условии, что отправитель является...
85 просмотров
schedule
01.05.2023
Как мне получить доступ к геттерам и сеттерам из отдельного класса в основной класс (с понижением в С#)
Я знаю, как это сделать на Java, но C# работает неправильно. Я уверен, что упускаю что-то очевидное. Как видите, я хочу преобразовать питомца в собаку, если питомец не является собакой. Я думаю, что подавленный прав, но, возможно, это не так....
63 просмотров
schedule
18.09.2022
Повышение/понижение приведения в Java
Я пытаюсь понять восходящее и нисходящее приведение в Java, и меня смущает следующий сценарий (о моем коде, который приведен ниже):
Во-первых, почему код не компилируется, когда я включаю строку myAnimal.bark(); ,
и во-вторых (при условии, что...
154 просмотров
schedule
21.12.2022