flightPlanner / destinationCity.h
destinationCity.h
Raw
//
// Created by loggityloglog on 10/21/20.
//

#ifndef INC_20F_FLT_PLN_DESTINATIONCITY_H
#define INC_20F_FLT_PLN_DESTINATIONCITY_H
#include "city.h"
#include "Stringy.h"
class destinationCity : public city {
public:
	/* Constructors */
	destinationCity() : city(){

	}
	destinationCity(Stringy destination, double cost, double numMinutes, Stringy airline) : city() {
		this-> destination = destination;
		this-> cost = cost;
		this-> numMinutes = numMinutes;
		this-> airline = airline;
	}
	destinationCity(const destinationCity& copy) : city(){
		this-> destination = copy.destination;
		this-> cost = copy.cost;
		this-> numMinutes = copy.numMinutes;
		this-> airline = copy.airline;
	}
	/* Destructor */
	~destinationCity () = default;
	/* Functions */
	Stringy& getDestination(){
		return this-> destination;
	}
	void setDestination(const Stringy& set){
		this-> destination = set;
	}
	double& getCost(){
		return this-> cost;
	}
	void setCost(const double& set){
		this-> cost = set;
	}
	double getNumMinutes(){
		return this-> numMinutes;
	}
	void setNumMinutes(const double& set){
		this-> numMinutes = set;
	}
	Stringy& getAirline(){
		return this-> airline;
	}
	void setAirline(const Stringy& set){
		this-> airline = set;
	}
	/* Operators */
	bool operator== (const destinationCity& rhs){
		return (this-> destination == rhs.destination && this-> cost == rhs.cost && this-> numMinutes == rhs.numMinutes && this-> airline == rhs.airline);
	}
	bool operator!= (const destinationCity& rhs){
		return !((*this) == rhs);
	}
	bool operator< (const destinationCity& rhs){
		return (this-> destination < rhs.destination);
	}
	destinationCity& operator= ( const destinationCity& rhs){
		if(*this == rhs) return *this;
		else {
			this-> destination = rhs.destination;
			this-> cost = rhs.cost;
			this-> numMinutes = rhs.numMinutes;
			this-> airline = rhs.airline;
		}
		return *this;
	}
	friend ostream& operator<< (ostream &OS, const destinationCity &S) {
		OS << S.destination << " " << S.cost << " " << S.numMinutes << " " << S.airline;
		return OS;
	}
	bool operator ==(const city& rhs){
		return (this->destination == rhs.getStartPoint());
	}
private:
	Stringy destination;
	double cost;
	double numMinutes;
	Stringy airline;
};
#endif //INC_20F_FLT_PLN_DESTINATIONCITY_H