Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как узнать тип производного класса в функции базового - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задание с функцией http://www.cyberforum.ru/cpp-beginners/thread1211917.html
Задание .Посчитать величину Z за формулой z=(log10(pow(2*y, 2.0))+2*y+exp(2*y)+5)/ ((log10(y*y)+y+exp(y)+7)*(log10(pow(y/2, 2.0))+y/2+exp(y/2))) , где y=-3.41*(pow(10.0, -4.0) Выполнил...
C++ OOP laba. Реализовать сдачу экзамена студентами у преподавателей помогите пожалуста на завтра нада здать лабараторную мне ещо 3 писать помогите плизз с етой ато не успиваю зарание спасибо большое !! ) 3 студента должно быть это ООП ! В программе заполняется... http://www.cyberforum.ru/cpp-beginners/thread1211911.html
Не корректный вывод C++
Всем привет. Столкнулся с такой проблемой, что при пробеге цикла первый раз пробегает впустую без возможности ввода, а дальше всё работает корректно #include "stdafx.h" #include <iostream>...
C++ Назначение возвращаемого значения функцией
Уважаемые форумчане, помогите пожалуйста ответить на пару тройку вопросов:wall: 1.Поясните назначение возвращаемого значения функцией. Как оформляется при описании функции отсутствие возвращаемого...
C++ Передать значение переменной http://www.cyberforum.ru/cpp-beginners/thread1211899.html
Мне нужно узнавать значение переменной в базовом классе, во всех классах наследниках. class CTest { public: float flTest; void change( ) {
C++ Ввести массив строк, содержащий фрагмент программы на языке С. Распечатать список идентификаторов, встречающи Ввести массив строк, содержащий фрагмент программы на языке С. Распечатать список идентификаторов, встречающихся в правой части операторов присваивания, и их типы. подробнее

Показать сообщение отдельно
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
19.06.2014, 01:00
Цитата Сообщение от Divergence Посмотреть сообщение
В классе class2 есть функция, которая должна отработать в зависимости от того, в каком из производных классов она была создана
Делаете эту функцию виртуальной в классе class2 и переопределяете как хотите уже в class{3-5}
Цитата Сообщение от Divergence Посмотреть сообщение
Как мне узнать, на основе какого класса был создан экземпляр класса class2?
Вы что-то путаете, class2 здесь создан всегда на основе class1 и никого больше.
Возможно, вопрос должен звучать так: как мне узнать, объект какого типа реально адресует указатель типа class2* (или ссылка)? .
Если реализация поддерживает RTTI, то
C++
1
std::cout << typeid(*class2Ptr).name() << std::endl;
распечатает имя искомого класса в некоторой зависящей от реализации манере.
Еще вариант через dynamic_cast<>() приводить объект типа class2* (или ссылку) ко всем производным по очереди и то приведение, которое не вернет вам nullptr (или не бросит исключение std::bad_cast), будет приведением к реально адресуемому типу.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru