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

转载 2015年07月09日 18:34:00

  

  #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++用纯虚函数实现协议委托的例子

C++不像其他很多编程语言有接口、委托或者协议的概念,但是利用纯虚函数和C++多重继承的特性,我们也能实现接口、委托或协议要做的事情,下面的通过一个人设置闹钟然后被闹钟唤醒的例子来说明如何在C++中实...
  • jackfrued
  • jackfrued
  • 2015年07月09日 07:14
  • 3627

c++ 普通函数 虚函数 纯虚函数 代码例子

#include #include using namespace std; class Person { public: Person(const string& name, int a...
  • FengTwoYear
  • FengTwoYear
  • 2017年04月25日 08:14
  • 470

C++学习篇——纯虚函数和抽象类

纯虚函数是一种特殊的虚函数,它的一般格式如下:     class     {         virtual ()=0;         …     };     在许多情况下...
  • yansmile1
  • yansmile1
  • 2016年04月13日 23:03
  • 457

C++中对纯虚函数和多态的理解

    抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层。       ⑴抽象类的定义:       称带有纯虚函数的类为抽象类。     ...
  • zhanghuaichao
  • zhanghuaichao
  • 2016年10月10日 16:11
  • 726

[c++]为什么可以在基类中实现纯虚函数

引述自:http://forums.codeguru.com/showthread.php?356281-C-why-pure-virtual-function-has-definition-Plea...
  • fnzsjt
  • fnzsjt
  • 2014年08月02日 19:37
  • 1432

C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别

1.虚函数(impure virtual)   C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。   子类可以重写父类的虚函数实现子类的特殊化。   如...
  • ybhjx
  • ybhjx
  • 2016年06月30日 10:45
  • 2607

C++ 基类私有纯虚函数 在派生类中的实现

想验证一下C++ 基类private纯虚函数 在派生类中是否可以实现,若可以,该怎么实现 a.先在网上搜到一下资源 1.【转】“纯虚函数可以设计成私有的,不过这样不允许在本类之外的非友元函数中直接...
  • tjian2014
  • tjian2014
  • 2013年12月13日 16:47
  • 2020

关于C++虚函数和纯虚函数

虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚...
  • pamchen
  • pamchen
  • 2013年03月06日 12:05
  • 999

C++中虚函数与纯虚函数以及虚继承的相关知识

这篇文章主要利用网上的博客,经过自己的总结写成,不免出现错误情况,如有错误,请指正。 虚函数 首先是虚函数的意义。在面向对象的设计思想中,虚函数的作用是实现多态性。如何实现多态呢?下面看C++虚函数表...
  • chy19911123
  • chy19911123
  • 2015年09月08日 20:42
  • 473

C++虚函数和纯虚函数和抽象类

C++虚函数和纯虚函数和抽象类分析
  • x_r_su
  • x_r_su
  • 2016年08月31日 13:31
  • 694
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++用纯虚函数实现协议委托的例子
举报原因:
原因补充:

(最多只允许输入30个字)