C++用纯虚函数实现协议委托的例子

  

  #include

  #include

  usingstd::cout;

  usingstd::endl;

  //用纯虚函数设计一个协议

  //实现该协议的类有一个被唤醒的行为

  classAwakable{

  public:

  //纯虚函数

  virtualvoidbeAwaken()=0;

  };

  //闹钟类

  classAlarmClock{

  public:

  //委托方(谁委托了闹钟提供唤醒服务)

  Awakable*delegate;

  //在指定时间后报警

  voidalarmAfter(int)const;

  };

  voidAlarmClock::alarmAfter(intseconds)const{

  sleep(seconds);

  cout<<"叮咚叮咚叮咚"<

  //回调委托方的方法

  delegate->beAwaken();

  }

  //人类(实现了Awakable协议可以被唤醒)

  classPerson:publicAwakable{

  public:

  //启动闹钟并指定唤醒时间

  voidrollClock(int);

  //协议中的被唤醒的行为

  voidbeAwaken();

  };

  voidPerson::rollClock(intseconds){

  cout<<"人设置了闹钟"<

  //在栈上创建闹钟对象

  AlarmClockac;

  //设置委托方

  ac.delegate=this;

  ac.alarmAfter(seconds);

  }

  voidPerson::beAwaken(){

  cout<<"人被闹钟唤醒了"<

  }

  intmain(void){

  //在堆上创建人的对象

  Person*person=newPerson;

  //人启动闹钟设置5秒后被唤醒

  person->rollClock(5);

  //释放指针指向的堆空间

  deleteperson;

  return0;

  }

原地址:http://blog.csdn.net/jackfrued/article/details/46811771

滨州男科医院http://www.0543jl.com  
滨州男科医院http://3g.0543jl.com
滨州男科医院http://www.bzmnnkw.com
滨州男科医院http://3g.bzmnnkw.com
滨州哪家男科医院好http://www.0543mnyy.com 
滨州哪家男科医院好 http://3g.0543mnyy.com 
滨州九龙医院http://www.0543jlyy.com 
滨州九龙医院http://3g.0543jlyy.com 
滨州男科医院官网http://www.256600nk.com 
滨州男科医院官网http://3g.256600nk.com
滨州男科医院哪家好http://www.sdbznk.com
滨州男科医院哪家好http://3g.sdbznk.com
滨州九龙医院http://www.120bz.net
滨州九龙医院http://3g.120bz.net

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

C++用纯虚函数实现协议委托的例子

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭