class OSwitch {
private:
Operator *operators[];
//int variable; <-- unused variable
public:
OSwitch() {}
~OSwitch() {}
void setOperator(int id, Operator *op) {
operators[id] = op;
}
void execute(int id) {
operators[id]->execute();
}
};
抽象基本クラス Operator のサブクラスがいくつかあります。setOperator() を複数回呼び出すと、配列は最後の要素を「忘れ」ます。
例えば
XOperator a;
YOperator b;
os.setOperator(1,a);
os.setOperator(2,b);
os.execute(1); // <- wont work
しかし、int 変数 (または OperatorSwitch の他の変数) が宣言されている場合は機能します。これがどのように機能するかわかりません。
ヒントをありがとう。