Essential C++第五章 面向对象编程风格OOP

面向对象编程概念

相关概念

  • 面向对象编程概念的两项最主要特质是:继承和多态
  • 在继承机制中,父类定义了所有子类共通的公有接口和私有实现。每个子类都可以增加或覆盖继承而来的东西,以实现其自身独特的行为
  • 最根本的类是抽象基类,用来定义所有派生类的共通操作行为
  • 多态:让基类的指针或引用得以十分透明地指向其任何一个派生类的对象

漫游:面向对象编程思维

相关概念

  • 虚函数virtual动态运行,用于多态。
  • 析构函数一般都是虚函数
  • 虚函数表和动态绑定 必须调用指针或者引用的方式

不带继承的多态

定义一个抽象基类

相关概念

抽象基类的设置:

  1. 找出所有子类共通的操作行为
  2. 设法找出哪些操作行为与类型相关——也就是说,有哪些操作行为必须根据不同的派生门类而有不同的实现方式。这些操作行为应该成为整个类继承体系中的虚函数(静态成员函数无法被定义为虚函数)
  3. 找出每个操作行为的访问层级(public、private、protected)
  4. 纯虚函数——虚函数赋值为0(只要某个类中有一个纯虚函数,其为派生类的子对象,程序无法为它产生任何对象)

定义一个派生类

运用继承体系

基类应该多么抽象

初始化、析构、复制

相关概念

  • 在初始化时,较好的设计方式是:为基类提供构造函数,并通过这个构造函数处理基类所声明的所有数据成员的初始化操作
  • 派生类对象的初始化行为,包含调用其基类的构造函数,再调用派生类自己的构造函数
  • 派生类的构造函数,不仅必须为派生类的数据成员进行初始化操作,还需要为其基类的数据成员提供适当的值

在派生类中定义一个虚函数

相关概念

  • 在定义派生类时,我们必须决定,究竟是将基类中的虚函数覆盖掉,还是原封不动地加以继承。如果我们继承了纯虚函数,那么这个派生类也会被视为抽象类,也就无法为它定义任何对象

运行时的类型鉴定机制

指针:指向 Class Member Function

发布了59 篇原创文章 · 获赞 3 · 访问量 1814

猜你喜欢

转载自blog.csdn.net/Felix_hyfy/article/details/98757513