Форум программистов, компьютерный форум CyberForum.ru

Есть ли элемент который возвращает инфу на какой элемент иерархии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как объявить функцию без прототипа http://www.cyberforum.ru/cpp-beginners/thread645480.html
Во всех учебниках пишут, что каждая функция должна иметь прототип. ВОт стало интересно, можно ли объявить функцию, которая не имеет прототип. Если да, то как? Покажите.
C++ Несколько нюансов при использовании <vector> и управляющих инструкций Добрый день. Пытался решить задачу и напоролся на грабли: // вычислим и отобразим сумму каждых смежных элементов в векторе. int sum = 0; vector<int>::size_type last = ivec.size(); last = last - 1; // соответствует нумерации объектов начиная с нуля for(vector<int>::size_type i = 0; i < ivec.size(); ++i) { // if (!(last % 2)) // работает не корректно if (ivec >... http://www.cyberforum.ru/cpp-beginners/thread645476.html
C++ Получить новый массив, в котором сначала идут положительные числа, затем нулевые, затем отрицательные исходного
дан массив X(N). получить новый массив Y(N), такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из Х. данные: n=7; Х=(-1,2,0,4,-3,-2,0)
Найти в матрице квадратную подматрицу C++
дана матрица а(m,n) из 0 и 1. найти в ней квадратную подматрицу из одних единиц максимального размера.
C++ Проверьте правильность написания кода и коментарии http://www.cyberforum.ru/cpp-beginners/thread645458.html
Задача: Написать программу которая принимает в качестве аргумента имя файла f с русским текстом и печатает его в точности по одному предложению в строке Желательно подробные комментарии к задаче! Заранее спасибо #include<iostream> #include <fstream> using namespace std; int my_strlen(char *str) { int res=0; while(str)
C++ перебор элементов массива дан массив целых чисел. поменять местами пары элементов в массиве: 1 и2,3 и 4,5 и 6 и т.д. подробнее

Показать сообщение отдельно
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
01.09.2012, 22:38  [ТС]     Есть ли элемент который возвращает инфу на какой элемент иерархии
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение

Не по теме:

Что не пост, то лингвистическая загадка :) (No offense intended.)



Если знаете тип, то dynamic_cast<дочерний класс>, но это очевидно.

Если именно узнать динамический тип, то тут вас спасёт (?) через-жопу-работающая остальная часть RTTI: делаете typeid(дочерний объект), получаете на руки std::type_info. С type_info можно (нормально) делать только две вещи. Сравнивать с другим type_info, но только "равно — не равно", другого нет. И получить его имя в виде ASCIIZ-строки, но что там именно написано, определяется реализацией. Так что полагаться на него нельзя, это максимум чтоб вывести на экран.

В Си++ нет (встроенной) рефлексии. Если хочется — зафичьте отцовскому классу свою виртуальную функцию getType(), которая будет возвращать какой-нибудь enum с тегом типа, переопределите её в дочерних на нужный ChildType_n.

Но даже в таком варианте оно выглядит ужасно. Так что ещё лучше придумать какое-нибудь другое решение возникшей проблемы.

Короче тупо самому написать виртуальную функцию...
а ля
C++
1
2
void get_info(){
cout << "i'm childer 1 "; }

Не по теме:


))))) сорри )



ооо я у кого подсмотрел в свое время вот такой кусок...
C++
1
2
3
4
5
    const std::type_info &obj_type_info = ShapeType_Returner_withChoosenShape.type();   // Captures the type
            std::cout   << "\n\n The created figure type is an object of the "    // Calls its names and prints it
                        << obj_type_info.name() 
                        << "> "
                        << std::endl;
и как это пересобачить под пойнтер ??? в данном куске все дело спасает функция .type() (это функция от boost::variant )
кстати насколько я помню он что то даже адекватное возвращал а ля имя класса...
 
Текущее время: 05:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru