Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сравнивать классы, Узнать тот ли класс или нет 
:(
    Опции темы
Vetos
Дата 17.12.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



Маленький вопрос, как сравнить классы, то есть как узнать какого класса переменная.
Есть родительский класс, есть дочерние, переменная объявлена как родительский класс но по ходу программы, она принимает какойто дочерний класс, как потом узнать какой именно это класс.
тоесть как мне сравнить классы,
Код

class TElement{
...

};
class Plus:TElement{
...

};

...
...
...

TElement* h;

h= new Plus...

if (h==Plus)<<<<<<<<<<<<<<< Как вот тут сделать?


Спасибо)


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Sartorius
Дата 17.12.2007, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 2
Всего: 37



 Почитай что нибудь о RTTI. typeid() дает всю необходимую информацию
PM MAIL ICQ   Вверх
Mayk
Дата 17.12.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 3
Всего: 134



Код

if(Plus* plus = dynamic_cast<Plus*>(h) ){
 workWithPlus(plus);
}


Цитата(Vetos @  18.12.2007,  01:35 Найти цитируемый пост)

Есть родительский класс, есть дочерние, переменная объявлена как родительский класс но по ходу программы, она принимает какойто дочерний класс, как потом узнать какой именно это класс.

а вообще зачастую это ошибка дизайна. 
Поэтому Страуструп специально не стал вводить в С++ оператор для сравнения типа ( (с)  см"дизайне и эволюции с++").


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.