Рассмотрим следующий код, скомпилированный с включенным RTTI
class Base
{
virtual void f(); //without this, typeid won't show the most derived type
};
class Derived : public Base {};
int _tmain(int argc, _TCHAR* argv[])
{
Base* b = new Derived();
std::cout << typeid(*b).name() << std::endl; //this works but not on the Watch wnd
return 0; //breakpoint here
}
Если я разбью строку return
и посмотрю на панели «Часы» переменную b
, столбец типа скажет Base
, а не Derived
. Используя AutoExp.dat Я могу отображать самый производный тип для определенных базовых классов, но я хочу иметь возможность сделать это для всех типов. Я пытался использовать typeid(b)
в окнах Watch и Immediate безрезультатно - я получаю CXX0017: Error: symbol "typeid" not found
. Я также попытался набрать b,t
( Autoexp.dat синтаксис) в окне Watch - но затем я получил CXX0026: Error: bad format string