为了账号安全,请及时绑定邮箱和手机立即绑定

想不通,求指教

先上代码吧,不相干的省略

#include <iostream>
#include <typeinfo>
using namespace std;

class Fly{
public:
	//virtual void fly()=0;
};

class Bird:public Fly{
public:
	/*virtual void fly(){
		cout<<"i am a bird,i can fly"<<endl;
	}*/
};

class Plane:public Fly{
public:
	/*virtual void fly(){
		cout<<"i am a plane,i can fly!"<<endl;
	}*/
};


void doSomething(Fly *f){
	cout<<"i am "<<typeid(*f).name()<<endl;
}

int main(){
	Fly *f=new Plane();
	doSomething(f);
	delete f;
	f=NULL;

	Bird b;
	doSomething(&b);
	return 0;
}

打印结果是

i am 3Fly

i am 3Fly

而把类底下的注释取消,打印结果是

i am 5Plane

i am 4Bird

这里的3 4 5是什么  怎么来的?

正在回答

2 回答

我也是,用devC++编译的


0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//581cb8e60001b10307840537.jpg

本人运行一切正常,没出现LZ说的情况

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

想不通,求指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信