Вопросы по теме 'dynamic-cast'
Доступ к членам подкласса из указателя суперкласса C++
У меня есть массив пользовательских объектов класса Student. И CourseStudent, и ResearchStudent наследуются от Student, и все экземпляры Student являются одним из них.
У меня есть функция для просмотра массива, определения подтипа каждого...
16682 просмотров
schedule
31.07.2023
C++ dynamic_cast — полиморфное требование и понижение
В следующем коде при создании obj в случае 1 мы также создаем объект класса derived , но его функции-члены просто недоступны для obj . Таким образом, при понижении (т.е. в случае 2), используя obj в качестве источника, мы уже имеем в нем...
17065 просмотров
schedule
19.04.2022
Каков правильный вариант использования dynamic_cast?
Мне много раз говорили (и сам видел на практике), что использование dynamic_cast часто означает плохой дизайн, потому что его можно и нужно заменить виртуальными функциями.
Например, рассмотрим следующий код:
class Base{...};
class...
6461 просмотров
schedule
01.07.2022
С++ сопоставление уникальных классов и извлечение подклассов из значения
Новый программист C++ здесь.
У меня есть следующее определение карты:
typedef std::map<std::string, Option> MapType;
MapType my_map
Option — это уникальный класс, который я создал. На самом деле я никогда не добавляю класс Option в...
629 просмотров
schedule
12.04.2023
Почему вызов виртуальной функции быстрее, чем dynamic_cast?
Я написал простой пример, который оценивает среднее время вызова виртуальной функции, используя интерфейс базового класса и dynamic_cast и вызов не виртуальной функции. Вот:
#include <iostream>
#include <numeric>
#include...
6629 просмотров
schedule
16.06.2023
ошибка: не может dynamic_cast (цель не является указателем или ссылкой)
Я изучаю обработку исключений на С++ и сталкиваюсь с проблемой. Вот код:
#include<iostream>
#include<exception>
using namespace std;
class A
{
public:
virtual void f(void){}
};
class AA:public A
{
public:
void aa(void){};...
25199 просмотров
schedule
22.09.2023
Отказ от dynamic_cast в дизайне графического интерфейса
Я разрабатываю графический интерфейс, и у меня возникла проблема, потому что я не могу избежать динамического_кастинга.
Мои занятия:
class Widget; //base class for all widgets
class Container //contains widgets
{...
290 просмотров
schedule
13.09.2022
Как выполнить dynamic_cast с уникальным_ptr?
У меня есть иерархия классов следующим образом:
class BaseSession : public boost::enable_shared_from_this<BaseSession>
class DerivedSessionA : public BaseSession
class DerivedSessionB : public BaseSession
В функциях производного класса...
38692 просмотров
schedule
07.06.2022
цепочка методов метод производного класса после вызова метода базового класса
С классом и производным, как показано ниже, есть ли способ для методов базовых классов возвращать ссылку на объект производного типа вместо его собственного типа, чтобы синтаксически я мог связать методы вместе?
Предположим, что объект A имеет...
373 просмотров
schedule
02.09.2023
Сделать этот код правильно полиморфным
У меня есть абстрактный класс Parent, который имеет несколько дочерних элементов и пустые функции для взаимодействия с каждым из этих дочерних элементов. Каждый Дочерний элемент переопределяет функции Родителя и по-разному взаимодействует с другими...
89 просмотров
schedule
05.07.2022
Указатель базового класса C++ dynamic_cast на указатель производного класса
Я пытаюсь создать очень простой язык программирования, который позволяет кому-то играть в боевой корабль для школьного проекта на Flex/Bison. Чтобы хранить мои переменные, у меня есть карта с именем symbol_table, которая принимает строку в качестве...
668 просмотров
schedule
16.06.2022
Понижающее приведение с использованием dynamic_cast возвращает null
Я пытаюсь преобразовать объект базового класса в объект производного класса с помощью dynamic_cast , но dynamic_cast возвращает значение null. Можно ли понизить с помощью dynamic_cast ?
struct A {
virtual ~A() {}
};
struct B : A {};
int...
8304 просмотров
schedule
27.04.2022
Совместимость с Dynamic_cast?
Я читал о dynamic_cast, а затем наткнулся на следующее утверждение ( от cplusplus.com ):
Примечание о совместимости: для этого типа dynamic_cast требуется информация о типе времени выполнения (RTTI) для отслеживания динамических типов....
1559 просмотров
schedule
07.02.2023
Как можно выполнить dynamic_cast из std::exception в std::nested_exception?
Я только что видел код, содержащий dynamic_cast от std::exception до std::nested_exception , например,
try {
std::throw_with_nested(std::runtime_error("error"));
} catch (std::exception &e) {
auto &nested =...
549 просмотров
schedule
12.01.2023
Проверки динамического приведения во время выполнения
dynamic_cast <new type> (exp)
Я читал в документации, что если новый тип является указателем/ссылкой на производный, а выражение является указателем/ссылкой на базу, то динамическим приведением выполняется только проверка во время...
113 просмотров
schedule
28.02.2023
С++ Динамическое приведение, не полиморфно?
Когда я запускаю следующий код:
#include <iostream>
class Shape{
public:
};
class Square:public Shape
{
public:
};
class Circle:public Shape
{
double r;
public:
void SetRadious(double r)
{
std::cout << "R value:"...
60 просмотров
schedule
28.05.2023
Как правильно использовать основные рекомендации C++: C.146: используйте dynamic_cast, когда навигация по иерархии классов неизбежна.
Мотивация
Основные рекомендации C++ рекомендуют использовать dynamic_cast , когда навигация по иерархии классов неизбежна. Это приводит к тому, что clang-tidy выдает следующую ошибку: Do not use static_cast to downcast from a base to a derived...
391 просмотров
schedule
21.08.2022
Уточнение спецификации (правила) динамического приведения
У нас есть общая форма dynamic_cast:
dynamic_cast ‹ новый тип › ( выражение )
Меня особенно смущает выделенная жирным шрифтом часть этого правила (5а):
5: Если выражение является указателем или ссылкой на полиморфный тип Base, а new-type...
81 просмотров
schedule
03.08.2023