1class car 2{}; 3class car2L:public car 4{}; 5class car1.8L:public car 6{} 7class car1.5L:public car 8{} 9class decorator:public car10{11 ...12 ...13protected:14 car * car;15};16class AudiDecorator:public decorator17{18public:19virtualvoid turnLeft( )20 {21 ...22 增加有这个品牌的变化代码23 }24 ...25};26class BenzDecorator:public decorator27{28public:29virtualvoid turnLeft( )30 {31 ...32 增加有这个品牌的变化代码33 }34 ...35};36class FerrariDecorator:public decorator37{38public:39virtualvoid turnLeft( )40 {41 ...42 增加有这个品牌的变化代码43 }44 ...45};4647int main( int argc,char ** argv)48{49 car2L * c=new car2L( );50//相当于动态构造奔驰排量2L的车,相当于原先的car2LBenz类51 BenzDecorator b=new BenzDecorator(c);52 b->turnLeft( );53 b->turnRight( );54 ...55//相当于动态构造法拉利排量2L的车,相当于原先的car2LFerrari类56 FerrariDecorator f=new FerrariDecorator(c);57 f->turnLeft( );58 f->turnRight( );59 ...60return0;61 }