fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct IBaseInterface {
  5. virtual void madeMeCool() = 0;
  6. };
  7.  
  8. struct ICoolInterface : IBaseInterface {
  9. /* тут что-то оригинальное своё */
  10. virtual void madeMeCool() override {
  11. cout << "ICoolInterface сделал cool\n";
  12. }
  13. };
  14.  
  15. struct ICoolerInterface: IBaseInterface {
  16. /* тут что-то совсем другое своё */
  17. virtual void madeMeCool() override {
  18. cout << "ICoolerInterface тоже сделал cool\n";
  19. }
  20. };
  21.  
  22. struct CCoolImpl: virtual ICoolInterface, virtual ICoolerInterface {
  23. /* всё сделано по правилам, и ничего, как говорится, не предвещало */
  24. virtual void madeMeCool() override {
  25. ICoolInterface::madeMeCool();
  26. ICoolerInterface::madeMeCool();
  27. cout << "CCoolImpl сделал cool вдогоночку\n";
  28. }
  29. };
  30.  
  31. int main() {
  32. CCoolImpl cool;
  33. cool.madeMeCool();
  34. return 0;
  35. }
Success #stdin #stdout 0s 4472KB
stdin
Standard input is empty
stdout
ICoolInterface сделал cool
ICoolerInterface тоже сделал cool
CCoolImpl сделал cool вдогоночку