📄 typeinfo.cpp
字号:
#include <iostream.h>
#include <typeinfo.h>
#include <conio.h>
#pragma hdrstop
#include <condefs.h>
//---------------------------------------------------------------------------
#pragma argsused
/*class A { };
class B : A { };
int main(int argc, char **argv)
{
char C, ch;
float X;
// USE THE type_info::operator==()TO MAKE COMPARISON
if (typeid( C ) == typeid( X ))
cout << "C and X are the same type." << endl;
else cout << "C and X are NOT the same type." << endl;
// USE true AND false LITERALS TO MAKE COMPARISON
cout << typeid(int).name();
cout << " before " << typeid(double).name() << ": " <<
(typeid(int).before(typeid(double)) ? true : false) << endl;
cout << typeid(double).name();
cout << " before " << typeid(int).name() << ": " <<
(typeid(double).before(typeid(int)) ? true : false) << endl;
cout << typeid(A).name();
cout << " before " << typeid(B).name() << ": " <<
(typeid(A).before(typeid(B)) ? true : false) << endl;
while( ch = getch() != 'x' ) ;
return 0;
}
*/
class A
{
public:
virtual void f() { }
};
class B { };
class C : public A, public B { };
int main(int argc, char **argv)
{
char ch;
A *pa = new C;
C *pc = dynamic_cast< C * >( pa );
if( pc )
{
cout << "The pc's name is " << typeid( *pc ).name() << endl;
}
B *pb = dynamic_cast< B * >( pa );
if( pb )
{
cout << "The pb's name is " << typeid( *pb ).name() << endl;
}
delete pa;
while( ch = getch() != 'x' ) ;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -