Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////Car.h ////////////
- #pragma once
- #include <iostream>
- #include <string>
- #include "Passenger.h"
- using namespace std;
- class Passenger;
- class Car
- {
- private:
- string destination;
- double price;
- Passenger **passengers;
- int passengers_counter;
- const int LIMIT;
- public:
- Car();
- Car(string, double);
- Car(const Car&);
- ~Car();
- void updatePassengersCost();
- Car operator+=(Passenger&);
- Car operator-=(Passenger&);
- //Car operator += (Passenger**&);
- bool operator==(const Car&);
- bool operator!=(const Car&);
- Car &operator++();
- Car operator++(int);
- friend ostream &operator<<(ostream&, const Car&);
- friend ostream &operator<<(ostream&, const Car*);
- };
- //////////////////Car.cpp//////////////////////////
- #pragma once
- #include <iostream>
- #include <string>
- #include "Passenger.h"
- using namespace std;
- class Passenger;
- class Car
- {
- private:
- string destination;
- double price;
- Passenger **passengers;
- int passengers_counter;
- const int LIMIT;
- public:
- Car();
- Car(string, double);
- Car(const Car&);
- ~Car();
- void updatePassengersCost();
- Car operator+=(Passenger&);
- Car operator-=(Passenger&);
- //Car operator += (Passenger**&);
- bool operator==(const Car&);
- bool operator!=(const Car&);
- Car &operator++();
- Car operator++(int);
- friend ostream &operator<<(ostream&, const Car&);
- friend ostream &operator<<(ostream&, const Car*);
- };
- /////////////////Passenger.h////////////////////////////////
- #pragma once
- #include <iostream>
- #include <string>
- using namespace std;
- class Passenger
- {
- private:
- string name;
- double cost;
- public:
- friend class Car;
- Passenger();
- Passenger(const Passenger*);
- Passenger(string);
- Passenger(string, double);
- //Passenger &operator = (const Passenger*);
- bool operator == (Passenger&);
- friend ostream &operator << (ostream&, const Passenger&);
- friend ostream &operator << (ostream&, const Passenger*);
- };
- ///////////////Passenger.cpp/////////////////////////////
- #include "Passenger.h"
- Passenger::Passenger(): name("Nobody"), cost(0) {}
- Passenger::Passenger(const Passenger *passenger): name(passenger->name), cost(passenger->cost) {}
- Passenger::Passenger(string name): name(name), cost(0) {}
- Passenger::Passenger(string name, double cost) : name(name), cost(cost) {}
- bool Passenger::operator == (Passenger &passenger){
- return this->name == passenger.name && this->cost == passenger.cost;
- }
- /*Passenger &Passenger::operator = (const Passenger *passenger)
- {
- return Passenger(passenger->name);
- }*/
- ///////////////////Main.cpp///////////////////////////////
- #include <iostream>
- #include <string>
- #include "Car.h"
- using namespace std;
- int main() {
- setlocale(LC_ALL, "Polish");
- Passenger a("Jan");
- Passenger tab[5];
- for (int i = 0; i < 5; i++) {
- tab[i] = new Passenger("Adam " + to_string(i));
- }
- Car s("Kraków", 100);
- cout << "s: " << endl << s << endl;
- s += a;
- cout << "s += a: " << endl << s << endl;
- s += tab[0];
- s += tab[1];
- cout << "s += tab[0] oraz tab[1]: " << endl << s << endl;
- Car bkp(s);
- cout << "bkp(s): " << endl << s << endl;
- if (s == bkp) cout << "tacy sami.." << endl;
- s -= a;
- cout << "s -= a: " << endl << s << endl;
- if (s != bkp) cout << "a sciana miedzy nami" << endl;
- cout << "s++: " << endl << s++ << endl;
- cout << "++s: " << endl << ++s << endl;
- cout << "s: " << endl << s << endl << "bkp: " << endl << bkp << endl;
- system("PAUSE");
- return 0;
- }
- ostream &operator<<(ostream &cout, const Passenger &passenger) {
- return cout << passenger.name << " (" << passenger.cost << ") ";
- }
- ostream &operator<<(ostream &cout, const Passenger *passenger) {
- if (passenger == nullptr)
- return cout << "None";
- return cout << passenger->name << " (" << passenger->cost << ") ";
- }
- ostream &operator<<(ostream &cout, const Car &car)
- {
- cout << "Destination: " << car.destination << ", price: " << car.price << " (" << car.passengers_counter << "/" << car.LIMIT << ")" << endl;
- for (int i = 0; i < car.LIMIT; i++) {
- if(car.passengers[i] != nullptr)
- cout << car.passengers[i] << endl;
- }
- return cout;
- }
- ostream &operator<<(ostream &cout, const Car *car)
- {
- return cout << car;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement