微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C++类指针指向子类还是基类的判断方法

C++类指针指向子类还是基类的判断方法

时间:12-01 来源:互联网 点击:
#include

class animal

{

public:

animal()

{

cout<"hello kitty"

}

virtual void eat()

{

cout<"eat bianbian"

}

};

class plant:public animal

{

public:

plant()

{

}

void eat()

{

cout<"haha"

}

};

void fn(animal *pan)

{

pan->eat ();

}

void main()

{

plant st;

animal*pan; //一个指向animal的指针

pan=&st; //把这个指针换成plant的类空间

fn(pan);//把这个被替换的指针赋给fn(),它貌似指向了,然后通过这个函式指向eat()

}

//函数中有两个类,而且都有eat()函数最后到底指向哪个eat()呢!

//答:指向基类。如果想指向子类,办法是有的!就是把基类的eat()函数虚化。加virtual前缀即可!

// `(*∩_∩*)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top