ducks.cpp

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

CPP
38
字号
#include "Ducks.hpp"

using namespace HeadFirstDesignPatterns::Adapter::Ducks;

void testDuck( const Duck* duck ) {	duck->quack();	duck->fly();}

int main( int argc, char* argv[] ) {

	std::auto_ptr< MallardDuck > duck( new MallardDuck() );#ifdef _DUCK_ADAPTER_	std::auto_ptr< Turkey > duckAdapter( new DuckAdapter( duck.get() ) ); 	for( int i = 0; i < 10; i++ ) {		std::cout << "The DuckAdapter says..." << std::endl;		duckAdapter->gobble();		duckAdapter->fly();	}
#else
	std::auto_ptr< WildTurkey > turkey( new WildTurkey() );	std::auto_ptr< Duck > turkeyAdapter( new TurkeyAdapter( turkey.get() ) );
	std::cout << "The Turkey says..." << std::endl;	turkey->gobble();	turkey->fly();

	std::cout << std::endl << "The Duck says..." << std::endl;	testDuck( duck.get() );

	std::cout << std::endl << "The TurkeyAdapter says..." << std::endl;	testDuck( turkeyAdapter.get() );
#endif

	return 0;
}

⌨️ 快捷键说明

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