Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 24th, 2012  |  syntax: None  |  size: 0.57 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. % cat p.cpp
  2. #include <stdio.h>
  3.  
  4. class A
  5. {
  6. public:
  7.     virtual void f() const
  8.     {
  9.         printf("A\n");
  10.     }
  11. };
  12.  
  13. class B : public A
  14. {
  15. public:
  16.     virtual void f() const
  17.     {
  18.         printf("B\n");
  19.     }
  20. };
  21.  
  22. void callf(A &a)
  23. {
  24.     a.f();
  25. }
  26.  
  27. class Caller {
  28. public:
  29.     Caller(const A &_a1, const A &_a2):
  30.         a1(_a1), a2(_a2)
  31.     {
  32.     }
  33.  
  34.     const A a1;
  35.     const A &a2;
  36.  
  37.     void doit()
  38.     {
  39.         a1.f();
  40.         a2.f();
  41.     }
  42. };
  43.  
  44. int
  45. main()
  46. {
  47.     B b;
  48.     Caller c(b, b);
  49.     c.doit();
  50.     return 0;
  51. }
  52.  
  53. % ./a.out
  54. A
  55. B