home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C15 / Sizes.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  867 b   |  41 lines

  1. //: C15:Sizes.cpp
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. // Object sizes vs. virtual funcs
  7. #include <iostream>
  8. using namespace std;
  9.  
  10. class NoVirtual {
  11.   int a;
  12. public:
  13.   void x() const {}
  14.   int i() const { return 1; }
  15. };
  16.  
  17. class OneVirtual {
  18.   int a;
  19. public:
  20.   virtual void x() const {}
  21.   int i() const { return 1; }
  22. };
  23.  
  24. class TwoVirtuals {
  25.   int a;
  26. public:
  27.   virtual void x() const {}
  28.   virtual int i() const { return 1; }
  29. };
  30.  
  31. int main() {
  32.   cout << "int: " << sizeof(int) << endl;
  33.   cout << "NoVirtual: "
  34.        << sizeof(NoVirtual) << endl;
  35.   cout << "void* : " << sizeof(void*) << endl;
  36.   cout << "OneVirtual: "
  37.        << sizeof(OneVirtual) << endl;
  38.   cout << "TwoVirtuals: "
  39.        << sizeof(TwoVirtuals) << endl;
  40. } ///:~
  41.