fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Parent1
  5. {
  6. virtual void f()
  7. {
  8. cout << "\nParent1::f";
  9. }
  10. };
  11. struct Parent2
  12. {
  13. virtual void g()
  14. {
  15. cout << "\nParent2::g";
  16. }
  17. virtual void z()
  18. {
  19. cout << "\nParent2::z";
  20. }
  21. };
  22. struct Child : public Parent1, public Parent2
  23. {
  24. virtual void h()
  25. {
  26. cout << "\nChild::h";
  27. }
  28. };
  29.  
  30. int main()
  31. {
  32. Child obj;
  33. Parent2 * p2 = static_cast<Parent2*>(static_cast<Parent1*>(&obj));
  34. p2->z();
  35. return 0;
  36. }
Compilation error #stdin compilation error #stdout 0s 4508KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:33:69: error: invalid static_cast from type ‘Parent1*’ to type ‘Parent2*’
     Parent2 * p2 = static_cast<Parent2*>(static_cast<Parent1*>(&obj));
                                                                     ^
stdout
Standard output is empty