2.4抽象数据的多重表示
来源:互联网 发布:oppo手机mac地址查询 编辑:程序博客网 时间:2024/05/16 18:03
计算机程序的构造和解释(笔记)
2.4抽象数据的多重表示
2.4.1 复数的表示
数据抽象已经介绍过了,具体看之前的2.1数据抽象引导
这里介绍的是抽象数据的多重表示(个人理解类似overload重载,忽略类中的具体函数实现,直接使用对应的函数中的方法method)
书上给的是一个复数实现的例子,分别使用直角坐标表示 和 极坐标表示法,来实现底层的封装
例如上述中的复数运算add或mul-comoplex,可以忽略底层是哪个实现的,只要计算时候调用正确就可以。
2.4.2 带标志数据
值得是给一个标志来区分底层具体使用 直角坐标表示 和 极坐标表示法的哪一个
类似C++ 的 前置++ 和后置++ 的重载operator的实现吧
这里具体一点:
// 前置版本,返回递增对象的引用class ClassA{ classA& operator++(); ...};ClassA& ClassA::operator++(){ ++curr; return *this;}// 后置版本,返回递增对象的原值// 注意加入一个额外的(不被使用的)int类型的形参,仅仅为了区分ClassA{ classA& operator++(int); ...};classA ClassA::operator++(int){ ClassA ret= *this ; // 保存当前值 ++*this; return ret ;}// 调用:ClassA a;a.operator++(); //前置版本a.operator++(0); //后置版本
2.4.3 数据导向的程序设计的可加性
2.5 带有通用型操作的系统
2.5.1 通用形算术运算
这里我参照C++prime的chap14 函数调用运算符来理解,也就是忽略参数的类型的不同,但最终调用的方法相同
也就是:
2.5.2 不同类型的数据结合
- 强制
这里说的应该是cast
- 类型的层次结构(对比oop中的对象继承吧)
这里有几个概念:
- 类型塔
- 子类型 :(也就是子类啦)例如整数是有理数的子类,对于有理数的操作都可以应用于整数
- 超类型:(父类) 这里有理数是整数的父类
层次结构的不足
这里果然谈到了多重继承,类之间的继承不是单一等问题哈哈o(*≧▽≦)ツ
问题如下图:
2.5.3 实例:符合代数
有事暂时意识流了,习题不想看…. ╮( ̄▽ ̄”)╭
阅读全文
0 0
- 2.4抽象数据的多重表示
- SICP_Python版:抽象数据的多重表示
- 过程化表示抽象数据的原则
- Mahout 对推荐数据的抽象表示(上部分)
- Mahout 对推荐数据的抽象表示(下部分)
- 数据的编码表示
- 数据的表示方法
- 数据的单位表示
- 数据的表示
- 推荐数据的表示
- 数据的表示总结
- 数据表示的要素
- 抽象数据类型的表示和实现方法
- 抽象数据类型的表示与实现
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型Triplet的表示和实现
- 抽象数据类型的表示与实现
- 抽象数据类型的表示与实现
- 说说阿里云经典网络和专有网络
- CentOS新增用户使用密钥对登录
- 静态代码块、非静态代码块、构造方法的执行顺序
- ADV-153 数的划分
- 无人机驾驶员培训学习记录(十)
- 2.4抽象数据的多重表示
- JVM的垃圾收集器
- 欢迎使用CSDN-markdown编辑器
- CCF CSP 2015年12月第3题 画图 (模拟+DFS或BFS)
- 堆排序小结
- 2.9.3Groovy枚举类型及构造方法、自定义函数
- 疯狂JAVA--1
- STL之Set:Set的基本用法
- Struct拦截器的注册