fork download
  1. struct IVehicle {
  2.  
  3. // virtual double getTankVolume() const = 0;
  4. // virtual double getPetrolAmount() const = 0;
  5. // virtual void arrive() = 0;
  6. // virtual int leave() = 0;
  7.  
  8. virtual ~IVehicle() {};
  9. };
  10.  
  11. struct IBus : IVehicle {
  12.  
  13. // virtual int getPeopleCount() const = 0;
  14. // virtual int getMaxPeople() const = 0;
  15. };
  16.  
  17. struct ITruck : IVehicle {
  18.  
  19. // virtual double getCurrentLoad() const = 0;
  20. // virtual double getMaxLoad() const = 0;
  21. };
  22.  
  23.  
  24. class Vehicle : public IVehicle { /* .. */ };
  25.  
  26. class Bus: public IBus { /* ... */ };
  27.  
  28. class Truck : public ITruck { /* ... */ };
  29.  
  30. class Expeditor : public IBus, public ITruck { /* ... */ };
  31.  
  32.  
  33.  
  34. int main() {
  35. IVehicle* v = new Bus;
  36. }
  37.  
Success #stdin #stdout 0s 2980KB
stdin
Standard input is empty
stdout
Standard output is empty