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