阵列我有下面的头文件表对象:声明对象以恒定的可变
#ifndef TABLE_H
#define TABLE_H
#include "Order.h"
#include "Waiter.h"
// 0 1 2 3
enum TableStatus { IDLE, SEATED, ORDERED, SERVED };
class Waiter; // to take care of circular reference.
class Table
{
private:
int tableId; // table number
const int maxSeats; // table seat capacity
TableStatus status; // current status, you can use assign like
// status = IDLE;
int numPeople; // number of people in current party
Order *order; // current party's order
Waiter *waiter; // pointer to waiter for this table
public:
Table(int tblid =0, int mseats = 0); // initialization, IDLE
void assignWaiter(Waiter *person); // initially no waiter
void partySeated(int npeople); // process IDLE --> SEATED
void partyOrdered(Order *order); // process SEATED --> ORDERED
void partyServed(void); // process ORDERED --> SERVED
void partyCheckout(void); // process SERVED --> IDLE
int getMaxSeats(void);
int getStatus(void);
};
#endif
在我的主要功能,我需要声明表的阵列。但是当我写,比如Table * table = new Table [10]时,数组中的每个元素都会在构造函数中调用默认参数,并且每个表的最大坐标值都是0,我需要能够分别调用其每个构造函数以为maxSeats设置不同的值。
到目前为止唯一能够提出的解决方案是声明一个指向表对象的指针数组,然后分别实例化每个指针。这部分工作,但在上面的代码中提到的Waiter类接受一个表数组作为参数,并且如果它传递了一个表指针数组将不会工作。
我可以执行哪个过程来结束具有不同maxSeats常量变量值的Table对象数组?
还有一点需要澄清:数组必须动态创建,所以我不能明确地对构造函数进行10次或多次调用。我事先不知道阵列的大小是多少。
'班级服务员;'这里不好,Waiter.h至少应该做班级服务员。 –