Итак, у меня есть задание для класса, для которого требуется, чтобы мы использовали ряд классов вместе, чтобы имитировать сотрудника полиции, выдавшего билет.Создание класса для создания другого класса?
Вот как это работает:
классParkedCar:
Чтобы узнать, автомобили делают, модель, цвет, номер лицензии, а также количество минут , что автомобиль был припаркован
ParkingMeter Класс:
знаю, сколько времени было приобретено
ParkingTicket Класс:
знает делает, модель, цвет, лицензию автомобиля, рассчитать штраф, а также имя и значок номер сотрудника, выдавшего билет
PoliceOfficer Класс:
Знать имя значка номер сотрудника
и
Изучение ParkedCar и ParkingMeter объектов и определить, является ли билет необходим, если да, то сгенерировать объект ParkingTicket.
Вот что код, который я до сих пор:
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<ctime>
using namespace std;
class ParkedCar
{
string sMake;
string sModel;
string sColor;
string sPlate;
int iMinsParked;
public:
ParkedCar();
string getMake() const
{ return sMake; }
void setMake(string temp)
{ sMake = temp; }
string getModel() const
{ return sModel; }
void setModel(string temp)
{ sModel = temp; }
string getColor() const
{ return sColor; }
void setColor(string temp)
{ sColor = temp; }
string getPlate() const
{ return sPlate; }
void setPlate(string temp)
{ sPlate = temp; }
int getMins() const
{ return iMinsParked; }
};
ParkedCar::ParkedCar()
{
srand(time(NULL));
iMinsParked = (rand() % 10000);
}
class ParkingMeter
{
int iMinsPurch;
public:
void setMins(int temp)
{ iMinsPurch = temp; }
int getMins() const
{ return iMinsPurch; }
}
class Ticket : public ParkedCar
{
public:
string getName()
{ return sName; }
int getBadge()
{ return iBadge; }
};
class Officer
{
string sName;
int iBadge;
public:
friend string Ticket::getName();
//{ return sName; }
friend int Ticket::getBadge();
//{ return iBadge; }
};
int main()
{
ParkedCar Park;
cout << endl << endl;
cout << Park.getMins();
cout << endl << endl;
return 0;
}
Где я запутался в основном на билетах и офицерских классов. Назначение явно хочет, чтобы у Билета была своя собственная информация из всех других классов, но я не уверен, как передать эту информацию. Я попытался сделать его дочерним классом ParkedCar, но я просто получил ошибку нескольких определений. И я не могу заставить функции друга работать. Я пробовал их в обоих направлениях, и если я делаю их в Билете, это говорит мне, что Офицер не определен. И я действительно смущен тем, как должен писать код для офицера, создающего экземпляр Ticket, когда ничего еще не было инициализировано.
Итак:
Как мне получить всю информацию в классе билет?
Как я могу получить офицера для создания экземпляра Билета?
Обратите внимание, что это задание СТУДЕНТА, а не что-то профессиональное. Я просто хочу сделать то, что говорится в задании. Меня не интересуют способы «обойти» проблему, потому что это не то, что хочет проф.
Заранее благодарим за ваше время. : D
Для 'Officer' для создания экземпляра' Ticket' ему нужен только метод с типом возврата 'Ticket'. Вместо 'int' или' string' или 'void', отметьте тип возврата как' Ticket', создайте метод и верните объект 'Ticket'. – nhgrif
Ваше беспричинное чрезмерное использование мутаторов делает бедного ребенка Иисусом плачущим. Просто говорю. Эта информация должна быть передана конструктору. – cHao