3 Polymorphic classes
This is the more interesting case. How do we handle polymorphic classes? First, let us write some sample code in listing
3.
Listing 3: | Polymorphicclasses. |
1class X
2{ 3 public:
4 int n;
5 virtual void m1(
void);
6 virtual void m2(
void);
7};
8 9class Y :
public X
10{ 11 public:
12 int m;
13 virtual void m2(
void);
14 virtual void m3(
void);
15};
16 17void test(
void)
18{ 19 X myX;
20 Y myY;
21 X
*pX;
22 Y
*pY;
23 24 myX.m1();
25 myY.m1();
26 myY.m2();
27 pX =
static_cast<X
*>(&myY);
28 pX
−>m1();
29 pX
−>m2();
30 pY =
dynamic_cast<Y
*>(pX)
31 if (pY) pY
−>m3();
32}