fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Interface {
  5. public:
  6. virtual int interf1(int a) = 0;
  7. virtual int interf2(char c) = 0;
  8. };
  9.  
  10.  
  11. class Implement1 : virtual public Interface {
  12. public:
  13. int interf1(int a){
  14. std::cout << a << a << std::endl;
  15. return 0;
  16. }
  17. };
  18.  
  19. class Inplement2 : virtual public Interface {
  20. public:
  21. int interf2(char c){
  22. std::cout << c << c << c << std::endl;
  23. return 0;
  24. }
  25. };
  26.  
  27. class Test : public Implement1, public Inplement2 {
  28.  
  29. };
  30.  
  31.  
  32. int main() {
  33. Test t;
  34.  
  35. // static usage:
  36. t.interf1(42);
  37. t.interf2('x');
  38.  
  39. // polymorphic usage via interface:
  40. Interface *i = &t;
  41. i->interf1(42);
  42. i->interf2('x');
  43.  
  44. return 0;
  45. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
4242
xxx
4242
xxx