コード例 #1
0
ファイル: SimUDuck.cpp プロジェクト: RattleInGlasses/ps_ood
void PlayWithDuck(Duck & duck)
{
	duck.Quack();
	duck.Dance();
	duck.Fly();
	DrawDuck(duck);
}
コード例 #2
0
int main()
{
	Duck d;
	d.perforFly();
	d.setFlyBehavior(new FlyNoWays());
	d.perforFly();
	return 0;
}
コード例 #3
0
int main() {
	
	Duck* obj = new RubberDuck(new FlyNoWay, new Quack);
	obj->display();
	obj->swim();
	obj->performFly();
	obj->performQuack();
}//end of main
コード例 #4
0
ファイル: Strategy_pattern.cpp プロジェクト: Behiri/other
int main()
{
	Duck* mallard = new MallardDuck();
	mallard->performQuack();
	mallard->performFly();

	std::cout << "Hi" << std::endl;
	return 0;
}
コード例 #5
0
int main(int argc, char* argv[])
{
	Duck* mallard = new MallardDuck();
	mallard->display();
	mallard->performFly();
	mallard->performQuack();
	Duck* model = new ModelDuck();
	model->display();
	model->performFly();
	model->setFlyBehavior(new FlyRocketPowered());
	model->performFly();
	return 0;
}
コード例 #6
0
int main() {
	cout << "Adapter pattern" << endl; // prints !!!Hello World!!!

	Duck* dockPtr = new Duck();
	dockPtr->quackLikeADuck();

	Duck* mallardDockPointer = new MallardDuck();
	mallardDockPointer->quackLikeADuck();

	Turkey* turkeyPtr = new WildTurkey();
	//turkeyPtr->fly();
	//turkeyPtr->gobble();

	TurkeyAdapter* imitatesDucks = new TurkeyAdapter(turkeyPtr);

	testDuck(imitatesDucks);

	return 0;
}
コード例 #7
0
ファイル: main.cpp プロジェクト: amitesh-singh/algorithms
int main()
{
   //mallard duck
   Duck *mallard = new MallardDuck();
   mallard->display();
   mallard->performQuack();
   mallard->performFly();
   mallard->setFlyBehavior(new FlyWithRocket());
   mallard->performFly();

   delete mallard;

   //super duck
   Duck *super = new SuperDuck();
   super->display();
   //first quack and then fly
   super->performQuack();
   super->performFly();

   delete super;

   return 0;
}
コード例 #8
0
int main()
{
	Duck *mallard = new MallardDuck();
	mallard->performFly();

	Duck *rubber = new RubberDuck();
	rubber->performFly();

	rubber->setFlyBehavior(new FlyRocketPowered());
	rubber->performFly();

	mallard->performQuack();
	rubber->performQuack();

	delete mallard;
	delete rubber;

	return 0;
}
コード例 #9
0
int main()
{
	Duck *mallard = new MallardDuck();
	mallard->performFly();

	Duck *rubber = new RubberDuck();
	rubber->performFly();

	rubber->setFlyBehavior(new FlyRocketPowered()); // 실행 중 행위 변경
	rubber->performFly();

	return 0;
}
コード例 #10
0
ファイル: strategy.cpp プロジェクト: gmyofustc/CS-notes
int main()
{
    Duck *duck;
    RealDuck real; //真的会叫会飞的鸭子
    FakeDuck fake; //假的不会飞不会叫的鸭子

    duck = &real;   //动态绑定到真鸭子
    duck->performFly();
    duck->performQuack();

    duck = &fake;   //动态绑定到假鸭子
    duck->performFly();
    duck->performQuack();

    duck->setFlyBehavior(new FlyWithWind());    //运行时更改飞的属性
    duck->performFly();
    return 0;
}
コード例 #11
0
ファイル: Strategy.cpp プロジェクト: fengyibei/Strategy
void main()
{
    FlyBehavior *pfWings = new FlyWithWings;
    FlyBehavior *pfNo = new FlyNoWay;
    FlyBehavior *pfRocket = new FlyWithRocket;

    Duck *pDuck = new MallardDuck(pfWings);
    pDuck->performFly();

    pDuck->setFlyBehavior(pfNo);
    pDuck->performFly();

    pDuck->setFlyBehavior(pfRocket);
    pDuck->performFly();
}
コード例 #12
0
ファイル: SimUDuck.cpp プロジェクト: RattleInGlasses/ps_ood
void DrawDuck(Duck const& duck)
{
	duck.Display();
}
コード例 #13
0
ファイル: oop_duck.cpp プロジェクト: migashko/faslib
// ----------------------- The main event -------------------------
int main()
{
    Duck *mallard = new MallardDuck();
    mallard->display();
    mallard->floatAround();
    mallard->performFly();
    mallard->performQuack();
    cout << endl;

    Duck *rubber = new RubberDuck();
    rubber->display();
    rubber->floatAround();
    rubber->performFly();
    rubber->performQuack();
    cout << endl;

    Duck *painted = new PaintedDuck();
    painted->display();
    painted->floatAround();
    painted->performFly();
    cout << endl;

    painted->setFlyBehaviour(new FlyWithRocket);
    painted->performFly();
    painted->performQuack();

    cout << endl;
    painted->setQuackBehaviour(new Quack);
    painted->performQuack();
    return 0;
}
コード例 #14
0
int main() {
	Duck *d = &NormalDuck();
	d.perform_fly();
}
コード例 #15
0
static inline void testDuck(Duck& duck) {
    duck.quack();
    duck.fly();
}
コード例 #16
0
ファイル: Duck.cpp プロジェクト: Ratel13/VitrumProjects
Duck* Duck::create(DuckType type)
{
    Duck* duck = new Duck(type);
    duck->autorelease();
    return duck;
}