陣列我有下面的頭文件表對象:聲明對象以恆定的可變
#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至少應該做班級服務員。 –