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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ivan92
0 / 0 / 1
Регистрация: 30.01.2013
Сообщений: 188
#1

Узнать к какому классу принадлежит объект - C++

06.12.2013, 19:42. Просмотров 1206. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Base{
};
 
class Child1:public Base{
};
 
class Child2:public Base{
};
 
class Child3:public Base{
};
 
Base *p[100];
for(int i:=0;i<100;i++)
switch(condition){ //какое-то условие
  case 1:p[i]=new chlid1;
  case 2:p[i]=new chlid2;
  case 3:p[i]=new chlid3;
}
Теперь мне потребовалось узнать, к какому классу принадлежит каждый объект. Можно было бы сделать в классе атрибут, в который буду записывать тип, но хотелось бы обойтись без этого.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 19:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Узнать к какому классу принадлежит объект (C++):

В некоторый момент программы нужно узнать, к какому классу принадлежит объект - C++
В некоторый момент программы мне нужно узнать, к какому классу принадлежит объект. Вот допустим, у меня есть объект Object. И 2 потомка:...

Как узнать, какому протоколу физического (нижнего) уровня принадлежит фрейм (ETHERNET_FRAME) - C++
Пишу снифер на c++(пытаюсь). Создал сокет и перевел его в режим прослушивания. Как из фрейма понять он был отправлен/принят по wifi,...

Как определить, к какому классу относится элемент массива? - C++
Добрый вечер. Задача следующая: существует абстрактный класс, который наследуется в нескольких производных классах. После этого,...

Числовая прямая. Какому из отрезков принадлежит данная точка x? - C++
числовая прямая разбита на произвольные отрезки а1, а2, ..., аn. Выясните, какому из отрезков принадлежит данная точка x. Добавлено...

Определить, к какому элементу массива принадлежит считываемый символ - C++
Добрый день, уважаемые форумчане! подскажите пожалуйста есть массив const int M=8; char* const alphabet = {&quot;\t\r\n &quot;, &quot;a-z&quot;,...

Числовая прямая разбита на отрезки точками A1 - An. Какому из отрезков принадлежит заданная точка X? - C++
Пусть числовая прямая разбита на произвольные отрезки точками a1, a2, …, an. Выясните, какому из отрезков принадлежит данная точка х. ...

3
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,869
Записей в блоге: 3
Завершенные тесты: 1
06.12.2013, 19:48 #2
RTTI в помощь
Википедия: Динамическая идентификация типа данных
1
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
06.12.2013, 20:01 #3
И тут уместно напомнить, что правильный подход к написанию программ состоит в том, чтобы такое "узнавание" не было нужно.
1
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,070
06.12.2013, 20:04 #4
Цитата Сообщение от ivan92 Посмотреть сообщение
Теперь мне потребовалось узнать, к какому классу принадлежит каждый объект.
а зачем?
кроме RTTI могу предложить такой вариант
виртуальная функция Type() в базовом классе чисто виртуальная
а в производных переопределена, и пускай возвращает свой тип
хотя это самодельное RTTI получается
1
06.12.2013, 20:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 20:04
Привет! Вот еще темы с ответами:

Получить доступ к обьекту класса в друж. функц. этому классу при этом не передавая этот объект в качестве параметра - C++
Допустим имеется класс lass1 для него определена дружественная функция friend1. Вопрос можно ли как то получить доступ к объекту который не...

Когда оператор должен быть обязательно членом класса, и когда он обязательно не принадлежит классу? - C++
Нужно узнать случаи, когда оператор функция должна быть обязательно членом класса и случаи, когда оператор- функция обязательно не...

Метод не хочет возвращать объект типа класса которому он принадлежит - C++
Есть класс matrix и один из методов этого класса plus который возвращает объект типа matrix Но корректно этого делать не хочет Ошибка...

Узнать, принадлежит ли точка заштрихованной области - C++
Точка вводится пользователем. график: Помогите пожалуйста!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru