LINUX.ORG.RU

Интересное имя класса после оператора typeid


0

0

Когда запускаю программку ниже:

#include <iostream>

#include <typeinfo>

using namespace std;

class BaseClass {

public:

virtual void f() {};

};

class Derived1: public BaseClass {

};

class Derived2: public BaseClass {

};

void WhatType (BaseClass &o) {

cout << "o - объект типа  ";

cout << typeid(o).name() << endl;

}

int main() {

BaseClass baseob;

Derived1 ob1;

Derived2 ob2;

WhatType(baseob);

WhatType(ob1);

WhatType(ob2);

return 0;

}

на консоль выводится что-то типа: "8BaseClass", "9Derived1" и т.д. Под виндой показывает чище (без числового префикса), но там своя "песня".


Ответ на: комментарий от anonymous

Если написанной мною воды вопрос не понятен, конкретизирую: ну и как в таком случае обеспечить "всехность" кода на различных платформах ?

Да, тогда и еще вопрос, какой из компиляторов наиболее ближе к Standard C++ ?

gtyrin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.