Вопросы по теме 'dynamic-cast'

Безопасная проверка типа переменной
Для системы мне нужно преобразовать указатель в длинный, а затем длинный обратно в тип указателя. Как вы можете догадаться, это очень небезопасно. Что я хотел сделать, так это использовать dynamic_cast для преобразования, поэтому, если я смешаю их,...
4058 просмотров
schedule 23.04.2024

Есть ли способ сделать динамическое неявное приведение типов в С#?
Учитывая этот класс с неявным оператором приведения: public class MyDateTime { public static implicit operator MyDateTime(System.Int64 encoded) { return new MyDateTime(encoded); } public MyDateTime(System.Int64 encoded)...
3649 просмотров

Насколько дорого стоит динамическое приведение в C ++?
Для моего GUI API, который работает с множеством бэкэндов (sdl, gl, d3d и т. Д.), Я хочу динамически преобразовывать изображение общего типа во что бы то ни было. Суть в том, что я бы выполнял динамическую трансляцию со скоростью около 20 * 60...
10477 просмотров
schedule 06.04.2022

Работает ли dynamic_cast внутри перегруженного оператора delete?
Я наткнулся на это: struct Base { void* operator new (size_t); void operator delete (void*); virtual ~Base () {} // <--- polymorphic }; struct Derived : Base {}; void Base::operator delete (void *p) { Base *pB =...
896 просмотров
schedule 14.04.2024

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

как проверить, указывают ли два указателя на один и тот же объект или нет?
Рассмотрим два указателя A* a; B* b; И A, и B являются полиморфными классами. Как проверить, указывают ли a и b на один и тот же объект или нет? Точнее, давайте укажем, что a и b указывают на один и тот же объект, если существует...
9998 просмотров
schedule 09.12.2023

static_cast и RTTI против dynamic_cast
Пожалуйста, обратите внимание на приведенный ниже код. Насколько я знаю, dynamic_cast медленнее, чем static_cast. Потому что он оценивает тип во время выполнения. Я сомневаюсь, что если мы используем static_cast с typeid(), как показано ниже, это...
4371 просмотров
schedule 13.04.2022

dynamic_cast возвращает нулевой указатель
Ради интереса я решил попробовать сделать простую систему компонентов сущностей. У меня есть список, содержащий все компоненты, и я создал функцию getPositionComponent, которая принимает идентификатор объекта и возвращает компонент позиции, связанный...
3015 просмотров
schedule 11.02.2024

Альтернативный дизайн, чтобы избежать dynamic_cast?
Скажем, у меня есть интерфейс Archive и интерфейс File . У каждого File гарантированно есть как минимум std::string name . Каждый Archive может std::vector<File*> Archive::list() const свои файлы. Каждый Archive может...
277 просмотров
schedule 28.11.2022

ClassCastException выдается при вызове .asSubclass из отдельной банки
У меня есть программа, благодаря которой у меня есть следующие три класса. Эти первые два находятся в jar1.jar : Main (используется прием загрузки jar, найденный здесь ): package prob1; import java.io.IOException; import java.net.URL;...
725 просмотров

Преобразование вектора эталонной оболочки в базовый класс в вектор reference_wrapper в производный класс не может выполнять динамическое приведение
Как в названии. Я получил эту ошибку при попытке dynamic_cast не может dynamic_cast '(& obj)->std::reference_wrapper‹_Tp>::get()' (типа 'class MEPObject') ввести 'class MEPGene&' (цель не является указателем или ссылкой на полный тип)...
385 просмотров
schedule 10.10.2023

Злоупотребление шаблонами?
Я хотел преобразовать dynamic_casts из базового класса в производный от этого стиля: auto derived = dynamic_cast<Derived*>(object); На что-то более компактное. Для этого я добавил в класс Base следующий шаблон:...
532 просмотров
schedule 21.12.2023

Почему я должен использовать dynamic_cast здесь
Я заметил, что если я использую приведение в стиле C (или reinterpret_cast) в приведенном ниже коде, я получаю исключение ошибки сегментации, но если я использую dynamic_cast , все в порядке. Почему это? Поскольку я уверен, что указатель a имеет...
374 просмотров

Временная сложность операций typeid и dynamic_cast в C++
Если оставить в стороне все опасения по поводу необходимости использования typeid и dynamic_cast и их сомнительного влияния на обслуживание кода, есть ли какая-либо информация о производительности этих двух механизмов самоанализа динамического...
53 просмотров