Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "cstring"
- using namespace std;
- class Vehicle{
- protected:
- char* name;
- double height;
- double weight;
- public:
- Vehicle(char* newName=NULL, double newHeight=0,double newWeight=0)
- {
- setName(newName);
- height=newHeight;
- weight=newWeight;
- }
- void setName(char* newName)
- {
- delete[] name;
- name=new char[strlen(newName)+1];
- strcpy(name,newName);
- }
- void setHeight(double newHeight)
- {
- height=newHeight;
- }
- void setWeight(double newWeight)
- {
- weight=newWeight;
- }
- bool canPassUnderBridge(double maxHeight)
- {
- return height<maxHeight;
- }
- bool canPassOverBridge(double maxWeight)
- {
- return weight<maxWeight;
- }
- double getHeight()
- {return height;}
- double getWeight()
- {return weight;}
- ~Vehicle()
- {
- delete[] name;
- }
- };
- class LandVehicle : virtual public Vehicle
- {
- private:
- double maxSpeed;
- char* model;
- double horsePower;
- public:
- void setModel(char* newModel)
- {
- delete[] model;
- model=new char[strlen(newModel)+1];
- strcpy(model,newModel);
- }
- double getSpeedUpstream(double streamSpeed)
- {
- return maxSpeed-streamSpeed;
- }
- double getSpeedDownstream(double streamSpeed)
- {
- return maxSpeed+streamSpeed;
- }
- double getTimeUpstream(double distance, double streamSpeed)
- {
- return distance/(maxSpeed-streamSpeed);
- }
- double getTimeDownstream(double distance, double streamSpeed)
- {
- return distance/(maxSpeed+streamSpeed);
- }
- ~LandVehicle()
- {
- delete[] model;
- }
- };
- class WaterVehicle : virtual public Vehicle
- {
- private:
- double maxSpeed;
- public:
- double getTime(double distance)
- {
- return distance/maxSpeed;
- }
- };
- class AmphibianVehicle : public LandVehicle, public WaterVehicle
- {
- };
- int main()
- {
- AmphibianVehicle ampo;
- ampo.setHeight(15);
- if(ampo.canPassOverBridge(20))
- {
- cout << "Dobre we" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement