c++——《我的第一本c++书》
作者:互联网
函数
- 优秀函数的五个要点
- 函数的返回值:直接返回和间接返回(指针)
- 在函数的入口处对参数有效性进行检验:if语句,断言(assert)
- 如果函数有返回值,不可返回一个指向函数体内局部对象的指针或引用
- 函数的功能要单一
面向对象
- 60年代软件危机:在软硬件系统逐渐复杂的情况下,软件如何得到良好的设计和维护
- 结构化程序设计方法(60-80年代):提出问题,把一个大问题划分为几个小问题,即各个子模块,解决每个子模块,最后通过主函数按照某种次序调用子模块(自顶向下、逐步求精)
优点:
-
- 程序仅由三种基本结构组成:顺序、选择、循环
- 分而治之、各个击破
- 自顶向下、逐步求精
缺点:
-
- 数据和操作相互分离:如果数据的格式发生变化,相应的操作函数就要重写
- 难以扩展:扩展功能涉及模块的重新划分,需大量改写原来函数
- 难以复用:模块与具体应用环境结合紧密,旧有的模块难以在新程序中复用
- 面向对象程序设计方法:现实世界是由许多彼此相关并互通信息的实体——对象(object)组成,而每个对象都由两部分组成,描述对象属性的数据和描述对象行为的函数(方法)。数据和函数紧密结合共同构成对象描述现实世界
- 特点:
- 封装:对象使数据和操作紧密结合
- 继承:支持代码复用
-
- 多态:使得不同结构的对象可以共享相同的外部接口
- 优点
- 容易设计、维护:代码符合认识规律,易于理解,可读性高
- 复用设计和代码,系统质量高:继承和多态
- 容易扩展
- 类成员的访问权限
- 友元:让外界函数或类能访问某个类的隐藏信息
- 当一个类的两部分有不同数量的实例或不同的生命周期时,为了保持类的“高内聚”,经常需要将一个类分割成两部分,即两个类,这样两个类就需要直接存取彼此的数据,最安全的途径就是将它们定义为彼此的友元
- 抽象与封装:从现实中的具体事物到类
- 继承:不断具体化,不断传承基类的属性和行为,并发展自己特有的属性和行为的过程
- 三种进化方式:
- 保留基类的属性和行为:Human和Teacher
- 改进基类的属性和行为:Student和Pupil类都有DoHomework()
- 添加新的属性和行为:
- 派生方式
- public:类型继承。派生类是基类的一个子类型,基类所有成员的访问级别在派生类中不做改变(is-a)
- private:实现继承。把基类的公有成员变成自己的私有成员
- protected:把基类的所有公有成员变成protected类型,保护基类的所有接口不被外界访问
- 使用规范
- 拥有派生关系的两个类必须相关:不可为了让“人”具有“飞行”的行为,而让“人”从“鸟”派生
- 不要把组合当成继承:若A是B的“一部分”,则不允许B继承A的功能,如键盘、鼠标是电脑的一部分,但电脑不能由键盘或鼠标派生
- 多态:大多数情况下派生类是基类的“一种”,如学生是人的一种,“教室里有多少人?”其实代表“教室里有多少学生?”,又比如“上车的人请买票”,都是在用基类指代派生类。但有时派生类会有对基类的行为进行自定义的需要,这时就要用到虚函数
- 如果派生类对虚函数重新定义,那么通过基类指针调用的就是具体对象的虚函数
- 当类中有纯虚函数时就成了一个抽象类,仅用于对外界提供公有接口
标签:第一本,函数,对象,基类,c++,继承,模块,派生类 来源: https://www.cnblogs.com/cxc1357/p/11973558.html