码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 第 15章 面向对象程序设计


    15.1 概述

    面向对象程序设计的核心思想是数据抽象、继承、和动态绑定。通过使用数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似类型并对其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以同一的方式使用它们的对象

    继承
    通过继承联系在一起的类构成了一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或者间接从基类继承而来,这些继承得到的类称为派生类

    基类是共有的部分,派生类是不同类特有的

    基类将类型相关的函数与派生类不做改变直接继承的函数区分对待,对于某些函数,基类希望派生类各自定义适合自己的版本,此时基类就将这些函数声明成虚函数

    函数加上virtual就是虚函数,可以重新在派生类重新定义
    
    class Quote{
    public:
      string isbn() const;//常量成员函数
      virtual double net_price(szie_t n) const;//虚函数
    
    
    }
    

    派生类必须通过使用类派生列表明确指出它是从哪个(哪些)基类继承而来。类派生列表访问形式:

    class Bulk_Quote :public Quote ;//基类是	Quote
    {}
    

    动态绑定
    使用动态绑定,我们可以用同一段代码处理Quote和Bulk_quote派生类的对象调用它,

    double print_total(ostream &os,const Quote &item,size_t n)
    double ret = item.net_price(n);
        os << "ISBN:" << item.isbn()  //调用Quote::isbn()
           << "# sold: " << n << "total due:" << ret <<endl;
        return ret;
    } 
    

    我们既能使用基类Quote的对象调用该函数,也能使用Bulk_quote派生类的对象调用它,又因为print_total是使用引用类型调用net_price函数,实际传入的对象类型将决定执行哪个版本的函数。

    print_total(cout, basic, 20); //调用Quote::net_price      
    print_total(cout, bulk, 20);  //调用Bulk_quote::net_price
    

    15.2 定义基类和派生类

  • 相关阅读:
    【算法】一类支持向量机OC-SVM(2)
    记一个 Android 14 适配引发的Android 存储权限问题
    Google Earth Engine 教程——Landsat 8 影像各波段直方图统计
    使用speedtest-cli进行服务器上传和下载速度测试
    代码随想录算法训练营Day6 | 242.有效的字母异位词 ●349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和
    高并发系统架构详解
    vue数据监听 -key的作用
    Postman模拟浏览器网页请求并获取网页数据
    数据仓库架构详解
    前后端接口设计与配置中心系统<二十九>-------HiAbility SDK开发3【 扫码能力集成、数据统计与埋点】
  • 原文地址:https://blog.csdn.net/qq_43448818/article/details/127067146
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号