Коллеги, есть проблема, надо определить к какому классу относится обьект в коллекции.
Есть-ли какие-нибудь функции stl для определения этого? Что-то как-то совсем не хочется забивать в каждый класс его определитель.
Здравствуйте, Sunrise, Вы писали:
S>Коллеги, есть проблема, надо определить к какому классу относится обьект в коллекции. S>Есть-ли какие-нибудь функции stl для определения этого? Что-то как-то совсем не хочется забивать в каждый класс его определитель.
Чо-то мне помнится, вроде в С++ нету поддержки определения принадлежности к типу.
Можно пытаться перебором через dynamic_cast, но это глупо.
А ваще штука вроде не очень умная — полиморфизм иначе зачем?
Здравствуйте, Sunrise, Вы писали:
S>Коллеги, есть проблема, надо определить к какому классу относится обьект в коллекции. S>Есть-ли какие-нибудь функции stl для определения этого? Что-то как-то совсем не хочется забивать в каждый класс его определитель.
Здравствуйте, Sunrise, Вы писали:
S>Коллеги, есть проблема, надо определить к какому классу относится обьект в коллекции. S>Есть-ли какие-нибудь функции stl для определения этого? Что-то как-то совсем не хочется забивать в каждый класс его определитель
Оператор typeid — возвращает информацию о типе(структуру type_info , определенную в <typeinfo>) — Страуструп 15,4,4
Здравствуйте, Sunrise, Вы писали:
S>Коллеги, есть проблема, надо определить к какому классу относится обьект в коллекции. S>Есть-ли какие-нибудь функции stl для определения этого? Что-то как-то совсем не хочется забивать в каждый класс его определитель.
А что именно тебе нужно от определения типа?
Возможно, что именно dynamic_cast и является самым правильным с идеологической точки зрения, т.к. не нарушает принцип подстановки Лисковой.