class Duck{
public:
FlyBehavior* flyBehavior;
QuackBehavior* quackBehavior;
void performFly() {
flyBehavior->fly();
}
void performQuack() {
quackBehavior->quack();
}
};
class MallardDuck:public Duck{
MallardDuck(){
flyBehavior = new FlyWithWings();
quackBehavior = new Quack();
}
};
class RubberDuck:public RubberDuck() {
flyBehavior = new FlyNoWay();
quackBehavior = new Squick();
};