home *** CD-ROM | disk | FTP | other *** search
/ Using Visual C++ 4 (Special Edition) / Using_Visual_C_4_Special_Edition_QUE_1996.iso / ch18 / before.cpp next >
C/C++ Source or Header  |  1995-09-12  |  825b  |  38 lines

  1. #include <iostream.h>
  2. #include <typeinfo.h>
  3.  
  4. // Define our classes
  5. class Base {
  6.     // Do nothing
  7.     // Force polymorphism
  8.     virtual void Nothing() { }
  9. };
  10.  
  11. class Middle : public Base {
  12.     // Do nothing
  13. };
  14.  
  15. class Derived : public Middle {
  16.     // Do nothing
  17. };
  18.  
  19. // Show before relationship
  20. void ShowBefore(const type_info& info1,
  21.                 const type_info& info2)
  22. {
  23.     cout << info1.name();
  24.     cout << (info1.before(info2) ? " is " : " is not ");
  25.     cout << "before " << info2.name() << "\n";
  26. }
  27.  
  28. void main()
  29. {
  30.     // Show the relationships
  31.     ShowBefore(typeid(Base),    typeid(Middle));
  32.     ShowBefore(typeid(Base),    typeid(Derived));
  33.     ShowBefore(typeid(Middle),  typeid(Base));
  34.     ShowBefore(typeid(Middle),  typeid(Derived));
  35.     ShowBefore(typeid(Derived), typeid(Base));
  36.     ShowBefore(typeid(Derived), typeid(Middle));
  37. }
  38.