2 つの列挙値を比較しようとしていますが、実行時に常に true と評価されるようです。
ステータスの値を取得する return メソッドを使用した Table.h の enum 宣言:
enum TableStatus { IDLE, SEATED, ORDERED, SERVED};
class Table
{
private:
...
TableStatus status; // current status
public:
...
TableStatus getTableStatus(void);
}
列挙値を比較する必要があるセクションでは、次のような条件を試しています。
if (tables[tableId]->getTableStatus() == TableStatus(SERVED))
このロジックを機能させる方法についての私の質問です。Table オブジェクトのステータスを特定の列挙値と比較すると、正しく評価されます。
編集: getTableStatus(void); を含む
TableStatus Table::getTableStatus(void){
return status;
}