fork(2) download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. class Serializable {
  6. public:
  7. virtual bool eq( const string & qs) const = 0;
  8. virtual bool eq( const Serializable * o) const = 0;
  9. };
  10.  
  11. class JSONSerializable : virtual public Serializable {
  12. public:
  13. virtual string toJSON( void) const = 0;
  14.  
  15. virtual bool eq( const string & qs) const {
  16. return toJSON() == qs;
  17. }
  18. virtual bool eq( const Serializable * o) const {
  19. return eq(dynamic_cast<const JSONSerializable*>(o)->toJSON());
  20. }
  21. };
  22.  
  23. class A : virtual public Serializable { };
  24.  
  25. class B : virtual public A,
  26. public JSONSerializable {
  27. public:
  28. virtual string toJSON( void) const {
  29. return string( "test!");
  30. }
  31. };
  32.  
  33.  
  34. int main() {
  35. B b;
  36. return 0;
  37. }
Success #stdin #stdout 0s 3292KB
stdin
Standard input is empty
stdout
Standard output is empty