0
ответов

как проверить, указывают ли два указателя на один и тот же объект или нет?

Рассмотрим два указателя A* a; Б* б; И A, и B являются полиморфными классами. Как проверить, указывают ли a и b на один и тот же объект или нет? Точнее, давайте укажем, что a и b указывают на один и тот же объект...
вопрос задан: 13 November 2017 20:58
0
ответов

dynamic_cast «this» внутри конструктора

Этот вопрос очень похож на этот. Почему я не могу использовать dynamic_cast «вбок» во время множественного наследования? За исключением того, что приведение работает - только не внутри в конструкторе. Заголовок: ...
вопрос задан: 23 May 2017 11:58
0
ответов

java: комбинированный instanceof и cast?

(Пожалуйста, не советуйте мне больше абстрагироваться от X и добавлять к нему еще один метод.) В C ++, когда у меня есть переменная x типа X *, и я хочу сделать что-то конкретное, если она также имеет тип Y * (Y является a ...
вопрос задан: 23 May 2017 10:30
0
ответов

dynamic_cast из «void *»

Согласно этому, void * не имеет информации RTTI, поэтому приведение из void * не является законным и имеет смысл. Если я правильно помню, dynamic_cast от void * работал над gcc. Не могли бы вы ...
вопрос задан: 23 May 2017 10:29
0
ответов

boost :: shared_ptr и динамическое приведение

У меня проблема с использованием shared_ptr базового класса, похоже, я не могу вызвать методы производного класса при разыменовании. Я считаю, что код будет более подробным, чем я: class Base: ...
вопрос задан: 19 April 2016 14:55
0
ответов

Производительность dynamic_cast?

Перед чтением вопроса: Этот вопрос не о том, насколько полезно использовать dynamic_cast. Дело только в его производительности. Недавно я разработал дизайн, в котором часто используется dynamic_cast. Когда ...
вопрос задан: 8 April 2016 13:23
0
ответов

Проверка, может ли перекрестное приведение работать?

Я знаю, что использование dynamic_cast для перекрестного преобразования в иерархии классов разрешено. Например, если у меня есть классы, которые выглядят следующим образом: AB \ / C Если у меня есть указатель A *, который ...
вопрос задан: 7 August 2015 14:44
0
ответов

Когда статическое приведение безопасно при использовании множественного наследования?

Я оказался в ситуации, когда я знаю, какого типа что-то. Тип является одним из трех (или более) уровней наследования. Я вызываю factory, который возвращает B*, однако T - это либо самый высокий уровень ...
вопрос задан: 10 June 2015 14:51
0
ответов

Как dynamic_cast обычно реализуется?

Действительно ли проверка типа является простым целочисленным сравнением? Или имело бы смысл иметь виртуальную функцию GetTypeId к различению, которое сделает это целочисленным сравнением? (Просто не хочу вещи быть...
вопрос задан: 29 July 2013 07:22
0
ответов

Умные указатели и динамические _cast

Заранее извиняюсь, если на это уже отвечали, пока искал и не нашел ответа. ВНИМАНИЕ :это домашнее задание, так что если вам неудобно отвечать, я вас понимаю. Я...
вопрос задан: 15 December 2012 05:27
0
ответов

Как идентифицировать неудачные приведения с помощью оператора динамического приведения _?

Скотт Мейер в своей книге «Эффективный C++» говорит, что динамическое _приведение типов используется для безопасного приведения типов вниз или поперек иерархии наследования. То есть вы используете динамическое _приведение для приведения указателей или ссы
вопрос задан: 16 July 2012 18:17
0
ответов

Работает ли dynamic_cast внутри перегруженного оператор delete?

Я наткнулся на это: struct Base {void * operator new (size_t); void operator delete (void *); virtual ~ Base () {} // <--- полиморфный }; struct Derived: Base {}; void Base :: operator delete ...
вопрос задан: 10 May 2012 12:51
0
ответов

Неоднозначное преобразование в динамическом_cast

Рассмотрим задачу получения объекта в качестве аргумента и вывода его типа:#include class A { }; класс B :public A { }; класс C :public A { }; class D :public C, public B { };...
вопрос задан: 6 April 2012 14:51
0
ответов

`dynamic_cast` из Base в Derived

Да, я знаю, что downcast с использованием dynamic_cast не может скомпилироваться, если Base не полиморфен, но моя проблема не в этом. class Base { public: virtual void bar() { ...
вопрос задан: 2 April 2012 09:15
0
ответов

Почему вызов виртуальной функции быстрее, чем dynamic_cast?

Я написал простой пример, который оценивает среднее время вызова виртуальной функции, используя интерфейс базового класса и dynamic_cast и вызов не виртуальной функции. Вот он: #include ...
вопрос задан: 31 March 2012 20:53
0
ответов

Насколько быстро работает dynamic_cast<>

... примерно по сравнению с обычным std::string::operator==()? Ниже я привожу некоторые подробности, я не уверен, что они имеют какое-либо значение. Ответ со сложностью или приближением достаточно хорош. ...
вопрос задан: 20 March 2012 07:09
0
ответов

Преобразование базового указателя в производные по шаблонам типы

У меня следующая иерархия: базовый класс { public: virtual ~ base () {} virtual void foo () {} }; шаблон <имя типа T> класс производный1: общедоступная база {virtual void foo () {}; }; ...
вопрос задан: 5 March 2012 03:58
0
ответов

Есть ли практическое применение для динамического преобразования в указатель void?

В C ++ T q = dynamic_cast (p); конструкция выполняет приведение во время выполнения указателя p к некоторому другому типу указателя T, который должен появиться в иерархии наследования динамического типа * p в ...
вопрос задан: 14 November 2011 15:34
0
ответов

dynamic_cast с отключенным RTTI

Мне любопытно узнать, что происходит при компиляции кода с динамическим приведением с отключенным RTTI (либо с -fno-rttion GCC, либо с / GR- в visual studio). Компилятор «возвращается» к static_cast ...
вопрос задан: 7 October 2011 12:11
0
ответов

Быстрый прогресс динамического преобразования

Некоторое время назад я нашел очень интересную статью об очень аккуратном обновлении производительности для dynamic_cast в C ++: http://www2.research.att.com/~bs/fast_dynamic_casting.pdf . По сути, это делает ...
вопрос задан: 19 September 2011 19:12
0
ответов

являются безопасными для удаления Dynamic_Casts для удаления в производственном коде?

Dynamic_Casts медленнее, но они безопаснее, чем Static_casts (при использовании с иерархиями объекта). Мой вопрос в том, что после того, как я обеспечил в моем коде отладки, что все (динамические) отливки верны, ...
вопрос задан: 9 September 2011 10:27
0
ответов

Вариадические шаблоны и динамическое кастинг

У меня есть кусок кода на С++ следующим образом: шаблон <имя_типа ...A> структурируем CastAll{шаблон <имя_типа ...B> void cast_all(void(*fun)(B...)), A...as){ //..... } }; Что бы я хотел...
вопрос задан: 7 September 2011 22:26
0
ответов

, Как dynamic_cast перестал работать?

Согласно тому, что я считал, выполнив неправильное время выполнения, dynamic_cast может или выдать bad_cast исключение или возвратить нуль. Это корректно, чтобы сказать, что это возвратит нуль при кастинге указателей? я....
вопрос задан: 30 August 2011 02:44
0
ответов

Реальный пример dynamic_cast в C ++

Может ли кто-нибудь дать мне реальный пример случая, когда dynamic_cast нужен, и его вообще нельзя обойти? Примеры, которые я могу придумать, обычно можно обойти с помощью двойной отправки. Если ...
вопрос задан: 1 July 2011 20:00
0
ответов

Явное создание экземпляра шаблонного класса и dynamic_cast в разделяемой библиотеке

Я наткнулся на проблема сегодня, которую я не могу решить. Я компилирую общую библиотеку, которая включает шаблонный класс (Derived , база которого - Base) и несколько явных экземпляров ...
вопрос задан: 24 May 2011 14:49
0
ответов

C ++: «… не является полиморфным типом» при использовании boost :: dynamic_pointer_cast

Почему я получаю следующую ошибку для следующего кода? 1> C: \ Libs \ boost_1_44 \ boost / smart_ptr / shared_ptr.hpp (259): ошибка C2683: 'dynamic_cast': 'my_namespace :: A' не является полиморфным типом 1 & ...
вопрос задан: 29 April 2011 01:09
0
ответов

Каков правильный вариант использования dynamic_cast?

Мне много раз говорили (и видел себя на практике), что использование dynamic_cast часто означает плохой дизайн, потому что его можно и нужно заменить виртуальными функциями. Например, рассмотрим ...
вопрос задан: 25 April 2011 08:53
0
ответов

Насколько дорого являются ли динамические приведения в C ++?

Для моего GUI API, который работает с множеством бэкэндов (sdl, gl, d3d и т. д.), я хочу динамически преобразовывать образ общего типа во что бы то ни было. Итак, в итоге есть, я бы сделал ...
вопрос задан: 17 April 2011 15:10
0
ответов

C ++: Сравнение указателей базового и производного классов

Я хотел бы получить некоторую информацию о передовых методах сравнения указателей в таких случаях, как этот: class База { }; class Derived: public Base { }; Derived * d = new Derived; Base * b = ...
вопрос задан: 14 April 2011 11:47
0
ответов

Проблемы с dynamic_cast: объект typeid не равен, но name равно

Я обнаружил, что dynamic_cast не работает в ситуации, в которой я ожидал, и посмотрел на typeid объекта объекты во время выполнения сделали ситуацию еще менее ясной. Мне просто нужно приведение базы к ...
вопрос задан: 13 April 2011 21:11