Advertisement
Muzer

Contravariance or whatever

May 26th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.45 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class A
  4. {
  5.   public:
  6.     int bob;
  7.     A()
  8.     {
  9.       bob = 4;
  10.     }
  11. };
  12.  
  13. class B : public A
  14. {
  15.   public:
  16.     int magic;
  17.     B()
  18.     {
  19.       bob = 5;
  20.       magic = 42;
  21.     }
  22. };
  23.  
  24. void evilFunc(A as[])
  25. {
  26.   A a;
  27.   as[0] = a;
  28.   as[1] = a;
  29. }
  30.  
  31. int main(void)
  32. {
  33.   B bs[2];
  34.   evilFunc(bs);
  35.   std::cout << bs[0].magic << " " << bs[0].bob << std::endl;
  36.   std::cout << bs[1].magic << " " << bs[1].bob << std::endl;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement