【发布时间】:2013-11-23 23:47:50
【问题描述】:
好的,所以我有一个班级作业,要求我们一起使用一系列班级,以模拟警察开罚单。
它是这样工作的:
ParkedCar 类:
了解汽车的品牌、型号、颜色、车牌号和分钟数 车已经停好
ParkingMeter 类:
知道已经购买了多少时间
停车票类:
了解汽车的品牌、型号、颜色、牌照,计算罚款,以及开票人员的姓名和徽章编号
警官类:
知道军官的名字一个徽章编号
与
检查 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;
}
我最困惑的地方主要是票务和军官课程。该作业显然希望 Ticket 拥有来自所有其他班级的自己的信息,但我不确定如何传递这些信息。我试过让它成为 ParkedCar 的子类,但我只是得到一个多重定义错误。而且我无法让朋友功能正常工作。我已经尝试了两种方式,如果我在 Ticket 中制作它们,它告诉我没有定义官员。而且我真的很困惑我应该如何编写代码,以便在尚未实际初始化任何内容的情况下为生成 Ticket 实例的官员编写代码。
所以:
如何将所有信息放入 Ticket 类?
如何让警官生成票证实例?
请记住,这是一项学生作业,而不是专业的作业。我只想按作业说的做。我对“解决”问题的方法不感兴趣,因为这不是教授想要的。
提前感谢您的宝贵时间。 :D
【问题讨论】:
-
对于
Officer要生成Ticket的实例,他只需要一个返回类型为Ticket的方法。而不是int或string或void,将返回类型标记为Ticket,让方法构建并返回一个Ticket对象。
标签: c++ class inheritance