私はResourceBinという名前のクラスを持っています。フィールドとしてマスカレードするクラスメソッド
class ResourceBin
{
public:
ResourceBin();
virtual ~ResourceBin();
int getResource(Resources resource) const;
void setResource(Resources resource, int amount);
int addResource(Resources resource, int amount);
unsigned int getMax(Resources resource) const;
void setMax(Resources resource, unsigned int amount);
bool simulateAddResource(Resources resource, int amount) const;
bool maxOn = true;
ResourceBin operator+(const ResourceBin& bin);
protected:
int resources[2];
unsigned int maxamount[2];
unsigned int getIndex(Resources resource) const;
private:
};
typedef ResourceBin ResourceList;
私は、MAXONがtrueに等しい場合、私のリソース値(リソースに格納されている)のいずれも、それは最高額だより大きくないことをことを確認してくださいしたいと思います。 maxOnが変更または設定されたときにいつでもメソッドを実行できる方法はありますか?
「maxOn」を設定する方法がないのはなぜですか?あなたはその呼び出しにあなたのチェックコードを入れることができます。 –
boolの代わりにmaxOn独自のクラスインスタンスを作成し、そのクラスの代入演算子をオーバーライドすることができます。本当にそこに行きたくはありません。 –
私はそれを設定する方法を作ることができました。フィールドに適しているように思えました。標準的な練習から離れてその方法なら、私はちょうど方法を作ることができます。 –