fork download
  1. #include <iostream>
  2.  
  3. class Surface
  4. {
  5. public:
  6. virtual ~Surface() {}
  7.  
  8. virtual void Draw() = 0;
  9. };
  10.  
  11. class Display : virtual public Surface
  12. {
  13. };
  14.  
  15. class Surface_OpenGL : virtual public Surface
  16. {
  17. public:
  18. void Draw()
  19. {
  20. std::cout << __PRETTY_FUNCTION__ << '\n';
  21. }
  22. };
  23.  
  24. class Display_OpenGL : public Display, public Surface_OpenGL
  25. {
  26. };
  27.  
  28. int main ()
  29. {
  30. Display *display = new Display_OpenGL();
  31.  
  32. display->Draw();
  33. delete display;
  34. return 0;
  35. }
Success #stdin #stdout 0s 3272KB
stdin
Standard input is empty
stdout
virtual void Surface_OpenGL::Draw()