ducksimulator.cpp

来自「深入浅出设计模式(书配套c++源代码)。包含20个设计模式的c++实现。」· C++ 代码 · 共 30 行

CPP
30
字号
#include "DuckSimulator.hpp"

using namespace HeadFirstDesignPatterns::Compound::Decorator;

int QuackCounter::_numberOfQuacks( 0 );

void simulate( const Quackable* duck ) { assert( duck );	duck->quack();}int main(int argc, char* argv[]) {

	std::auto_ptr< Quackable > mallardDuck( new QuackCounter( new MallardDuck() ) );	std::auto_ptr< Quackable > redheadDuck( new QuackCounter( new RedheadDuck() ) );	std::auto_ptr< Quackable > duckCall( new QuackCounter( new DuckCall() ) );	std::auto_ptr< Quackable > rubberDuck( new QuackCounter( new RubberDuck() ) );	std::auto_ptr< Quackable > gooseDuck( new GooseAdapter( new Goose() ) );	std::cout << std::endl << "Duck Simulator: With Decorator" << std::endl;	simulate(mallardDuck.get() );	simulate(redheadDuck.get() );	simulate( duckCall.get() );	simulate(rubberDuck.get() );	simulate( gooseDuck.get() );

	std::cout << "The ducks quacked " << QuackCounter::getQuacks() << " times" << std::endl;

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?