// Attached: HW_9f-2
// ===========================================================
// File: HW_9f-2
// ===========================================================
// Programmer: Elaine Torrez
// Class: CMPR 121
// ===========================================================
#include <iostream>
#include <string>
using namespace std;
class Car
{
private :
string model;
int year;
static int carCount;
public :
Car( )
{
model = "" ;
year = 0 ;
carCount++ ;
}
Car( string carModel, int carYear)
{
model = carModel;
year = carYear;
carCount++ ;
}
~Car( )
{
}
void setCar( string carModel, int carYear)
{
model = carModel;
year = carYear;
}
int getCount( )
{
return carCount;
}
void displayCar( )
{
cout << "Model: " << model << endl;
cout << "Year: " << year << endl;
}
friend bool areSame( Car firstCar, Car secondCar) ;
} ;
int Car:: carCount = 0 ;
bool areSame( Car firstCar, Car secondCar)
{
return ( firstCar.model == secondCar.model &&
firstCar.year == secondCar.year ) ;
}
int main( )
{
Car myCar;
Car yourCar( "Toyota" , 2007 ) ;
cout << "My Car" << endl;
myCar.displayCar ( ) ;
cout << endl;
cout << "Your Car" << endl;
yourCar.displayCar ( ) ;
cout << endl;
myCar.setCar ( "Ford" , 2002 ) ;
cout << "My Car" << endl;
myCar.displayCar ( ) ;
cout << endl;
if ( areSame( myCar, yourCar) )
cout << "The two cars are the same model and year." << endl;
else
cout << "The two cars are not the same model and year." << endl;
cout << endl;
cout << myCar.getCount ( ) << " cars have been declared." << endl;
return 0 ;
}
Ly8gQXR0YWNoZWQ6IEhXXzlmLTIKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gRmlsZTogSFdfOWYtMgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBQcm9ncmFtbWVyOiBFbGFpbmUgVG9ycmV6Ci8vIENsYXNzOiBDTVBSIDEyMQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQ2FyCnsKcHJpdmF0ZToKICAgIHN0cmluZyBtb2RlbDsKICAgIGludCB5ZWFyOwoKICAgIHN0YXRpYyBpbnQgY2FyQ291bnQ7CgpwdWJsaWM6CiAgICBDYXIoKQogICAgewogICAgICAgIG1vZGVsID0gIiI7CiAgICAgICAgeWVhciA9IDA7CiAgICAgICAgY2FyQ291bnQrKzsKICAgIH0KCiAgICBDYXIoc3RyaW5nIGNhck1vZGVsLCBpbnQgY2FyWWVhcikKICAgIHsKICAgICAgICBtb2RlbCA9IGNhck1vZGVsOwogICAgICAgIHllYXIgPSBjYXJZZWFyOwogICAgICAgIGNhckNvdW50Kys7CiAgICB9CgogICAgfkNhcigpCiAgICB7CiAgICB9CgogICAgdm9pZCBzZXRDYXIoc3RyaW5nIGNhck1vZGVsLCBpbnQgY2FyWWVhcikKICAgIHsKICAgICAgICBtb2RlbCA9IGNhck1vZGVsOwogICAgICAgIHllYXIgPSBjYXJZZWFyOwogICAgfQoKICAgIGludCBnZXRDb3VudCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGNhckNvdW50OwogICAgfQoKICAgIHZvaWQgZGlzcGxheUNhcigpCiAgICB7CiAgICAgICAgY291dCA8PCAiTW9kZWw6ICAiIDw8IG1vZGVsIDw8IGVuZGw7CiAgICAgICAgY291dCA8PCAiWWVhcjogICAiIDw8IHllYXIgPDwgZW5kbDsKICAgIH0KCiAgICBmcmllbmQgYm9vbCBhcmVTYW1lKENhciBmaXJzdENhciwgQ2FyIHNlY29uZENhcik7Cn07CgppbnQgQ2FyOjpjYXJDb3VudCA9IDA7Cgpib29sIGFyZVNhbWUoQ2FyIGZpcnN0Q2FyLCBDYXIgc2Vjb25kQ2FyKQp7CiAgICByZXR1cm4gKGZpcnN0Q2FyLm1vZGVsID09IHNlY29uZENhci5tb2RlbCAmJgogICAgICAgICAgICBmaXJzdENhci55ZWFyID09IHNlY29uZENhci55ZWFyKTsKfQoKaW50IG1haW4oKQp7CiAgICBDYXIgbXlDYXI7CiAgICBDYXIgeW91ckNhcigiVG95b3RhIiwgMjAwNyk7CgogICAgY291dCA8PCAiTXkgQ2FyIiA8PCBlbmRsOwogICAgbXlDYXIuZGlzcGxheUNhcigpOwogICAgY291dCA8PCBlbmRsOwoKICAgIGNvdXQgPDwgIllvdXIgQ2FyIiA8PCBlbmRsOwogICAgeW91ckNhci5kaXNwbGF5Q2FyKCk7CiAgICBjb3V0IDw8IGVuZGw7CgogICAgbXlDYXIuc2V0Q2FyKCJGb3JkIiwgMjAwMik7CgogICAgY291dCA8PCAiTXkgQ2FyIiA8PCBlbmRsOwogICAgbXlDYXIuZGlzcGxheUNhcigpOwogICAgY291dCA8PCBlbmRsOwoKICAgIGlmIChhcmVTYW1lKG15Q2FyLCB5b3VyQ2FyKSkKICAgICAgICBjb3V0IDw8ICJUaGUgdHdvIGNhcnMgYXJlIHRoZSBzYW1lIG1vZGVsIGFuZCB5ZWFyLiIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJUaGUgdHdvIGNhcnMgYXJlIG5vdCB0aGUgc2FtZSBtb2RlbCBhbmQgeWVhci4iIDw8IGVuZGw7CgogICAgY291dCA8PCBlbmRsOwogICAgY291dCA8PCBteUNhci5nZXRDb3VudCgpIDw8ICIgY2FycyBoYXZlIGJlZW4gZGVjbGFyZWQuIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9