FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.robertl / eb17.C
blob7cb5009030ff82f38b1bbfe05d5c6f3822cd28dd
1 #include <stdio.h>
3 class A {
4 public:
5     virtual void print();
6     virtual A * clone();
7 };
9 struct Pad {
10   virtual void f () {}
13 class B : public Pad, virtual public A {
14 public:
15     void print();
16     B * clone();
19 void A::print()
21     printf("A\n");
24 void B::print()
26     printf("B\n");
30 A * A::clone()
32     return this;
35 B * B::clone()
37     return this;
41 int main()
43     A * a = new B;
44     B * b = dynamic_cast<B *>(a);
46     printf("%p\n",b);                // (*2*)
47     b->print();
49     a = b;
50     printf("%p\n",a);
51     a->print();
53     a = a->clone();
54     printf("%p\n",a);
55     a->print();                      // (*1*)
57     return 0;