C++工作笔记-使用typeid获取对象的类名

代码如下:

#include <iostream>
#include <typeinfo>

using namespace std;

class A{
public:
	void print(){ cout << "Class A called!" << endl; }
};

class B :public A{
	void print(){ cout << "Class B called!" << endl; }
};

void main(){
	B *b = new B;
	A *a = new A;
	A *c = b;

	cout << typeid(b).name() << endl;
	cout << typeid(*b).name() << endl;
	cout << typeid(a).name() << endl;
	cout << typeid(*a).name() << endl;
	cout << typeid(c).name() << endl;
	cout << typeid(*c).name() << endl;

	getchar();
}

运行截图如下:



这里面要说明下:

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

这个b是一个指针,他指向了*b,所以他的类型为*b,

而*b才是b这个类。

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/80379793
今日推荐