C++多态

这是菜鸟教程的多态

#include<iostream>
using namespace std;
 
class A
{
public:
	void foo()
	{
		printf("A_foo\n");
	}
	virtual void fun()
	{
		printf("A_fun\n");
	}
};
class B : public A
{
public:
	void foo()
	{
		printf("B_foo\n");
	}
	void fun()
	{
		printf("B_fun\n");
	}
};

int main(void)
{
	A a;
	B b;
	A *p = &a;
	p->foo();
	p->fun();
	p = &b;
	p->foo();
	p->fun();
	
	 B *ptr = (B *)&a;
	ptr->foo();
	ptr->fun();
	return 0;
}

运行结果:
A_foo
A_fun
A_foo
B_fun
B_foo
A_fun

posted @ 2019-04-18 22:30  疏影龙栖  阅读(113)  评论(0编辑  收藏  举报