#include <iostream>
using
namespace
std;
class
A
{
public
:
virtual
~A()
{
}
virtual
void
Func1() = 0;
};
//B类继承A类,
class
B :
public
A
{
public
:
~B()
{
}
void
Func1()
{
printf
(
"B class!\n"
);
}
};
//C类继承A类。
class
C :
public
A
{
public
:
~C()
{
}
void
Func1()
{
printf
(
"C class!\n"
);
}
void
xFunc1()
{
printf
(
"C class!!!!\n"
);
}
};
int
main(
int
argc,
char
** argv)
{
A* pb =
new
B;
A* pc =
new
C;
pb->Func1();
pc->Func1();
// 可以通过这种向下转型的方式,调用C中特有的成员函数
(
dynamic_cast
<C*>(pc))->xFunc1();
return
0;
}