2013-07-04 3 views
0

Как проверить тип класса в C++?
В Java я использовал instanceof.Что является эквивалентом instanceof в C++?

Я предпочитаю не использовать динамический актерский состав, а только классический C++.
Есть ли какой-нибудь способ?

Разъяснение:
Это не дубликат another question in StackOverflow, так как я спросил, как я могу найти его без использования dynamic_cast. В другом вопросе ответом было его использование. Не указывайте его как дублируемое.

+3

Что вы подразумеваете под классическим C++, если не dynamic_cast? И что вы на самом деле пытаетесь сделать? – chris

+0

Я имею в виду, для 'dynamic_cast' вам нужно использовать' std :: ... '. По какой-то причине я не должен ее использовать. Я создал базовый класс и некоторые из них. Когда я получаю объект, я хочу выполнить операцию, связанную с определенным производным классом, но я получил его в цикле, поэтому он определяется как базовый. В Java, 'instanceof', я мог бы знать, какой именно тип. Но в C++ без использования 'dynamic_cast', как я могу узнать? – Aharon

+0

'dynamic_cast' - это языковая функция, а не функция библиотеки. Похоже, вы просто хотите, чтобы виртуальная функция переопределяла производный класс. – chris

ответ

2

Невозможно проверить тип класса без RTTI или его замену домашним пивом. Если приложение, скомпилированное без информации о типе RTTI, не хранится нигде.