zoukankan      html  css  js  c++  java
  • [林锐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)




  • 相关阅读:
    day10作业
    day9 函数作业
    Python编码及文件练习题
    day10函数命名空间,嵌套,闭包
    Python基础数据类型考试题
    day9 函数
    day8 文件操作
    day7 集合
    day6 编码
    day5 作业自我完成版
  • 原文地址:https://www.cnblogs.com/jeanschen/p/3429852.html
Copyright © 2011-2022 走看看