fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct A1
  5. {
  6. void func() { cout << "classA1::func()" << endl; }
  7. };
  8. struct A2
  9. {
  10. virtual void func() { cout << "classA2::func()" << endl; }
  11. };
  12. struct B1 : public A1
  13. {
  14. void func() { cout << "classB1::func()" << endl; }
  15. };
  16. struct B2 : public A2
  17. {
  18. void func() { cout << "classB2::func()" << endl; }
  19. };
  20. int main()
  21. {
  22. B1 b1;
  23. B2 b2;
  24.  
  25. A1* pa1;
  26. A2* pa2;
  27.  
  28. pa1 = &b1;
  29. pa2 = &b2;
  30.  
  31. pa1->func(); //①
  32. pa2->func(); //②
  33. return 0;
  34. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
classA1::func()
classB2::func()