正文

一道C++程序员的考题让我重新审视多态2006-11-11 22:20:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/20225.html

分享到:

班上一位同学参加了软考,问我这样一道题目,结果出乎我的意料: class SalesTicket {public: virtual void printTicket(){cout<<"\n这里是正文"<<endl;}}; class Decorator:public SalesTicket{ SalesTicket *ticket;public: Decorator(SalesTicket *t){ticket=t;} void printTicket(){  if(ticket!=NULL){   ticket->printTicket();} }}; class HeadDecorator:public Decorator{public: HeadDecorator(SalesTicket *t):Decorator(t){} void printTicket(){  cout<<"\n这里是票据的抬头"<<endl;  Decorator::printTicket(); }}; class FootDecorator:public Decorator{public: FootDecorator(SalesTicket *t):Decorator(t){} void printTicket(){  Decorator::printTicket();  cout<<"\n这里是票据的脚注"<<endl; }}; void main(void){ SalesTicket t; FootDecorator f(&t);    HeadDecorator h(&f); h.printTicket(); cout<<"\n------------------------"<<endl; FootDecorator a(NULL);  HeadDecorator b(&a); b.printTicket(); } 有兴趣的可以做一下啊,使你功力倍增

阅读(12504) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册