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 + -
显示快捷键?