⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 最近开始阅读 c++ 编程思想 反思自己的cc++, 连载笔记欢迎讨论.txt

📁 C&C++论坛精华
💻 TXT
字号:
作者:rick1126
email: rickzhang@sina.com
日期:2001-7-12 13:42:06
<< C++ 编程思想 >>

第01章 对象的演化

1.0 内容概要

    介绍OOP的基本概念
    讨论OOP的开发方法
    介绍使程序员, 项目和公司使用OOP的策略

1.1 基本概念

    C++ 包含了比OOP基本概念更多的内容. 
    
    
1.1.1 对象: 特性 + 行为

     【类】

       . 描述了一组相同特性(数据元素)和行为(函数)的对象. 就是数据类型. 
       . 和基本数据类型相比
         - 类和结构一样是程序员为适应具体问题而自行定义的. 而不是为了描述计算机的基本存储单元
         - 如果说基本数据类型着重描述计算机本身的物理存储的逻辑概念, 类就是程序员为了描述显示世界的具体一类对象的抽象的基本数据类型扩展和应用
         - 这和结构不谋而和或者类本身就是结构的扩展.
       . 所以类就是一种抽象数据类型

     【抽象数据类型】

       . 抽象数据类型是OOP的一个基本概念
       . 程序员使用抽象数据类型可以和使用内部数据类型一样准确工作


1.1.2 继承: 类型关系

     【类型】
       
       . 类型说明了一组对象的约束, 这里我理解类型就是术语类(Class), 还说明了与其他类型之间的关系

     【继承】

       . 继承表示了基本类型(基类 Base Class)和派生类型(派生类 Derived Class)之间的相似性
       . 基类拥有派生类的共性特性和行为, 派生类拥有自己的特殊行为和特性

       . 程序员使用基类描述系统中对于一些基本对象的核心认识, 使用派生类描述核心认识的不同途径
       . 程序员可以使用继承建立类的层次结构, 该层次结构使用类术语表达解决问题的方法

     【OOP的特点】

       . 可以分层次的解决问题
       . 使用类可以更接近自然逻辑语言, 而过去使用计算机术语更解决机器本身

      
1.1.3 多态性

     【多态性的意义】

       . 程序员使用希望编写不依赖于特殊类型的代码, 是的程序具有扩展性
       . 程序可以根据不同的情况选择不同的方法实现, 以实现"智能化"

       . 编译器不知道连接哪一段代码
       . "早捆绑" -- 前绑定: 使用绝对地址连接函数, 不适用于多态性
       . "晚捆绑" -- 后绑定: 编译器仅仅保证函数调用存在而不确定调用地址

       . 程序员使用 virtual 关键字获得"晚捆绑"特性 -- 虚函数

1.1.4 操作概念 OOP程序象什么

     【C语言的程序】

       . 过程程序: 数据定义和函数调用
       . 使用中间表示 -- 函数调用和函数实现本身
       . 中间表示容易引起混淆, 因为它们更偏向计算机, 而不是需要解决的问题

     【OOP程序】

       . 只需要掌握一些描述问题空间对象的定义
       . 可读性强, 代码量少


〖个人理解〗

  其实<< C++编程思想 >>本身就是一本基于C语言角度从计算机特点描述C++语言特点的书籍, 从不同的视角对于C++编程进行理解性的表述, 而不是象某些国内书籍从操作性或者纯OOP角度进行描述, 仅仅将C++作为一种工具, 而忽略了其思维方式和思想内涵. 这大概就是类似国内 "职业" 球员和国外职业球员对于本行的认识问题的区别了.

  下面就是针对OOP的基本特性 -- 封装(抽象), 继承和多态性的描述

  从现实世界中将基本矛盾实体抽象出来进行共性描述, 然后根据特性派生子类, 最终通过多态性赋予对象实体生命力; 我想这大概就是OOP的大致工作方式, 更接近于思维本身, 而更少的考虑机器的特性, 语言本身的特性.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -