Question

#include <iostream> #include <string> #include <iomanip> using namespace std; class Car { private: string reportingMark; int...

#include <iostream>

#include <string>

#include <iomanip>

using namespace std;

class Car

{

private:

string reportingMark;

int carNumber;

string kind;

bool loaded;

string destination;

public:

  

Car();

  

Car(const Car& obj);

  

Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest);

  

~Car()

{ };

  

void setReportingMark(string rMark)

{ reportingMark = rMark;}

  

void setCarNumber(int cNumber)

{ carNumber = cNumber;}

  

void setKind(string knd)

{ kind = knd;}

  

void setLoaded(bool load)

{ loaded = load;}

  

void setDestination(string dest)

{ destination = dest;}

  

string getReportingMark() const

{ return reportingMark;}

  

int getCarNumber() const

{ return carNumber;}

  

string getKind() const

{ return kind;}

  

bool getLoaded() const

{ return loaded;}

  

string getDestination() const

{ return destination;}

  

void output();

  

  

friend bool operator == (const Car &left, const Car &right);

};

void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest);

int main()

{

  

string rMark;

int cNumber;

string knd;

bool load;

string dest;

  

input(rMark, cNumber, knd, load, dest);

  

Car car1(rMark, cNumber, knd, load, dest);

Car car2(car1);

Car car3;

  

cout << "\nContents of car1:\n";

car1.output();

cout << "\nContents of car2:\n";

car2.output();

cout << "\nContents of car3:\n";

car3.output();

cout <<endl;

if (car1 == car2)

cout << "car1 is the same car as car2\n";

else

cout << "car1 is not the same car as car2\n";

if (car2 == car3)

cout << "car2 is the same car as car3\n";

else

cout << "car2 is not the same car as car3\n";

car2.setReportingMark ("UP");

car2.setCarNumber (81002);

car2.setKind ("box");

car2.setLoaded (true);

car2.setDestination ("Spokane");

cout<< "car 2 data" << endl;

car2.output();

return 0;

}

Car::Car()

{

reportingMark = "";

carNumber = 0;

kind = "other";

loaded = false;

destination = "NONE";

}

Car::Car(const Car &obj)

{

reportingMark = obj.reportingMark;

carNumber = obj.carNumber;

kind = obj.kind;

loaded = obj.loaded;

destination = obj.destination;

}

Car::Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)

{

setUp(rMark, cNumber, knd, load, dest);

}

void Car::output()

{

cout << setw(18) << left << "reportingMark: " << reportingMark << endl;

cout << setw(18) << left << "carNumber: " << carNumber << endl;

cout << setw(18) << left << "kind: " << kind << endl;

cout << setw(18) << left << "loaded: ";

if (loaded)

cout << "true";

else

cout << "false";

cout << endl;

cout << setw(18) << left << "destination: " << destination;

cout << endl;

}

void Car::setUp(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)

{

reportingMark = rMark;

carNumber = cNumber;

kind = knd;

loaded = load;

destination = dest;

}

void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest)

{

int len; // Check a string of 5 or less characters

  

// Read all the data from the user

cout << "Enter reportingMark: ";

getline(cin, rMark);

len = rMark.length();

// Check length

while (len > 5)

{

cout << "Invalid! Enter reportingMark with 5 or less upper case characters: ";

cin >> rMark;

len = rMark.length();

}

for (int i = 0; i < int (rMark.length()); i++)

rMark[i] = toupper(rMark[i]);

  

cout << "Enter carNumber: ";

cin >> cNumber;

cout << "Enter kind (box, tank, flat or other): ";

cin >> knd;

cout << "Enter 'true' for load or 'false' for noload: ";

cin >> std::boolalpha >> load;

cin.ignore();

if (load)

{

cout << "Enter destination: ";

getline(cin, dest);

}

else

dest = "NONE";

}

// THIS CODE IS SHOWING ME ERRORS I DONT KNOW WHY. CAN SOMEONE HELP ME?

0 0
Add a comment Improve this question Transcribed image text
Answer #1

for setUp method the prototype was not included in the class.

void setUp(const string&, const int&, const string&, const bool&, const string&);

for operator == the body was not defined.


bool operator == (const Car &left, const Car &right)
{
return left.carNumber==right.carNumber;
}

working code

#include <iostream>

#include <string>

#include <iomanip>

using namespace std;

class Car

{

private:

string reportingMark;

int carNumber;

string kind;

bool loaded;

string destination;

public:

  

Car();

  

Car(const Car& obj);

  

Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest);
void setUp(const string&, const int&, const string&, const bool&, const string&);
  

~Car()

{ };

  

void setReportingMark(string rMark)

{ reportingMark = rMark;}

  

void setCarNumber(int cNumber)

{ carNumber = cNumber;}

  

void setKind(string knd)

{ kind = knd;}

  

void setLoaded(bool load)

{ loaded = load;}

  

void setDestination(string dest)

{ destination = dest;}

  

string getReportingMark() const

{ return reportingMark;}

  

int getCarNumber() const

{ return carNumber;}

  

string getKind() const

{ return kind;}

  

bool getLoaded() const

{ return loaded;}

  

string getDestination() const

{ return destination;}

  

void output();

  

  

friend bool operator == (const Car &left, const Car &right);

};

bool operator == (const Car &left, const Car &right)
{
return left.carNumber==right.carNumber;
}
void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest);

int main()

{

  

string rMark;

int cNumber;

string knd;

bool load;

string dest;

  

input(rMark, cNumber, knd, load, dest);

  

Car car1(rMark, cNumber, knd, load, dest);

Car car2(car1);

Car car3;

  

cout << "\nContents of car1:\n";

car1.output();

cout << "\nContents of car2:\n";

car2.output();

cout << "\nContents of car3:\n";

car3.output();

cout <<endl;

if (car1 == car2)

cout << "car1 is the same car as car2\n";

else

cout << "car1 is not the same car as car2\n";

if (car2 == car3)

cout << "car2 is the same car as car3\n";

else

cout << "car2 is not the same car as car3\n";

car2.setReportingMark ("UP");

car2.setCarNumber (81002);

car2.setKind ("box");

car2.setLoaded (true);

car2.setDestination ("Spokane");

cout<< "car 2 data" << endl;

car2.output();

return 0;

}

Car::Car()

{

reportingMark = "";

carNumber = 0;

kind = "other";

loaded = false;

destination = "NONE";

}

Car::Car(const Car &obj)

{

reportingMark = obj.reportingMark;

carNumber = obj.carNumber;

kind = obj.kind;

loaded = obj.loaded;

destination = obj.destination;

}

Car::Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)

{

setUp(rMark, cNumber, knd, load, dest);

}

void Car::output()

{

cout << setw(18) << left << "reportingMark: " << reportingMark << endl;

cout << setw(18) << left << "carNumber: " << carNumber << endl;

cout << setw(18) << left << "kind: " << kind << endl;

cout << setw(18) << left << "loaded: ";

if (loaded)

cout << "true";

else

cout << "false";

cout << endl;

cout << setw(18) << left << "destination: " << destination;

cout << endl;

}

void Car::setUp(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)

{

reportingMark = rMark;

carNumber = cNumber;

kind = knd;

loaded = load;

destination = dest;

}

void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest)

{

int len; // Check a string of 5 or less characters

  

// Read all the data from the user

cout << "Enter reportingMark: ";

getline(cin, rMark);

len = rMark.length();

// Check length

while (len > 5)

{

cout << "Invalid! Enter reportingMark with 5 or less upper case characters: ";

cin >> rMark;

len = rMark.length();

}

for (int i = 0; i < int (rMark.length()); i++)

rMark[i] = toupper(rMark[i]);

  

cout << "Enter carNumber: ";

cin >> cNumber;

cout << "Enter kind (box, tank, flat or other): ";

cin >> knd;

cout << "Enter 'true' for load or 'false' for noload: ";

cin >> std::boolalpha >> load;

cin.ignore();

if (load)

{

cout << "Enter destination: ";

getline(cin, dest);

}

else

dest = "NONE";

}

please upvote if it helped.Feel free to ask any query

Add a comment
Know the answer?
Add Answer to:
#include <iostream> #include <string> #include <iomanip> using namespace std; class Car { private: string reportingMark; int...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT