• [林锐13]面向对象程序设计方法概述


    CHAPTER 13:面向对象程序设计方法概述

    13.5
    组合composition用于表示类的整体与部分关系。例如主机和显示器、鼠标等组合成计算机
    继承则表示类的“一般与特殊”的关系

    类的组合特性表现为两种:聚合(has-a) 和 关联(holds-a)
    聚合:比如head类有成员Eye,Nose,Mouth,Ear
    关联:就是类之间的引用,详细看第九章的关于结构的论述
    struct A
    {
        int count;
        char *pName;//A holds-a string
        B *pb;//A holds-a B
    };

    struct B
    {
        char ch;
        A *pa;//B holds-a A
        B *pNext;//B自引用
    };

    上面的两个结构可以组成一个链表,A是链表头的类型,B是链表节点的类型。通过链表头节点可以遍历整个链表,每个链表节点可以指向另一个链表,。。。。。。,这样就形成了一个庞大的链式结构。
    利用对象之间的引用关系,我们就可以实现链表,树,队列等复杂的数据结构,或者实现一些复杂的对象管理,比如对象之间的索引和定位。

    13.6 动态特性

     覆盖override的特征有:
      1) 不同的范围(分别位于派生类与基类);
      2) 函数名字相同;
      3) 参数相同;
      4) 基类函数必须有virtual关键字。

    很多情况下,哪些不能被实例化出来的对象的类是很有用的,称为抽象类Abstract Class.能够被实例化为对象的类称为具体类(concrete class)
    抽象类的唯一目的是让其派生类继承并实现它的函数接口,因此它通常被称为抽象基类(Abstract Base Class)


    抽象基类的主要用途是“接口与实现分离”

    一般的信息隐藏是把所有的数据成员声明为private或者protected的,并提供相应的get和set函数来访问对象的数据。抽象基类则更进一步,它把数据和函数都隐藏在实现类中,而在抽象基类中提供丰富的接口供你调用,这些函数都是public的纯虚函数。这样的抽象基类叫做接口类(Interface)




  • 相关阅读:
    vue开发环境搭建
    超出宽度省略号,css解决办法
    css平板手机pc媒体查询
    pc和移动端调用qq聊天
    fiddeler 抓包工具的配置使用
    给证件照换背景颜色
    markman高效的设计稿标注、测量工具
    画三角形和直角三角形
    vue中使用Ueditor编辑器 -- 1
    js获取浏览器缩放比例
  • 原文地址:https://www.cnblogs.com/jeanschen/p/3429852.html
Copyright © 2020-2023  润新知