home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
g
/
gina15.zip
/
demos
/
vtest.C
< prev
Wrap
C/C++ Source or Header
|
1992-02-27
|
1KB
|
74 lines
#include <stream.h>
class vbase {
public:
vbase() { i = 123; j = 456; };
virtual void show_this();
virtual void dummy();
int i, j;
};
void vbase::dummy() {};
void vbase::show_this()
{
cout << "vbase::show_this::this = " << this << "\n";
cout << i << "\n"; cout.flush();
}
class vbase_left : public virtual vbase {
public:
vbase_left() { k = 777; };
//virtual void show_this() { vbase::show_this(); };
virtual void dummy();
int k;
};
void vbase_left::dummy() {};
class vbase_right : public virtual vbase {
public:
vbase_right() { l = 888; };
virtual void show_this() { vbase::show_this(); };
virtual void dummy();
int l;
};
void vbase_right::dummy() {};
class vsub : public vbase_left, public vbase_right {
public:
vsub() { m = 999; };
virtual void show_this();
virtual void dummy();
int m;
};
void vsub::dummy() {};
void vsub::show_this()
{
cout << "vsub::show_this::this = " << this << "\n";
cout << i << j << k << l << m << "\n"; cout.flush();
}
main()
{
vbase *base;
vbase_left *base_leftptr = new vbase_left;
base_leftptr->show_this();
base = base_leftptr;
base->show_this();
vbase_right *base_rightptr = new vbase_right;
base_rightptr->show_this();
base = base_rightptr;
base->show_this();
vsub *subptr = new vsub;
subptr->show_this();
base = subptr;
base->show_this();
}