fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Base
  5. {
  6.  
  7. };
  8.  
  9. struct D1 : Base
  10. {
  11.  
  12. };
  13. struct D2 : Base
  14. {
  15. void bar() const
  16. {
  17. std::cout << "D2::bar" << std::endl;
  18. }
  19. };
  20.  
  21. struct D3 : D1, D2
  22. {
  23.  
  24. };
  25.  
  26. Base const * foo(D3 const * d3)
  27. {
  28. return static_cast<const D2*>(d3);
  29. }
  30.  
  31.  
  32. int main()
  33. {
  34. D3 d3;
  35. Base const *res = foo(&d3);
  36. static_cast<D2 const *>(res)->bar();
  37. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
D2::bar