其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Thinking in C++ 阅读笔记(第一章)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 2月20日

刚买书,明明是开源的,还要将近60元,黑啊真是的!

归入正题:

        粗看了一下序言,大概地介绍吧,还有一堆推荐书的好话。真正让我兴奋的还在后面!看C++方式的改变!

第一章 对象导言(introduction不就是介绍吗?导个什么言!)

             我所回忆的内容:(翻书补充)

           1、  对象和类

                   抽象法来看问题,万物即为对象,而对象有性质,所以把对象用抽象的类,也就是共性来描述。

                   五大原则:

                    1、万物皆为对象(程序也如此,可细分为一组)

                    2、对象互相交流(函数调用请求)

                    3、对象互构(更复杂程序的可能性)

                    4、一切对象都有属性(类的可能)

                    5、一个类的所有对象都能接受同一个消息(OOP强大功能的可能)

                 模型: 类(抽象)——实例/对象(具体)

                  解决理论与实际结合的困难:接口 interface(函数)
        
                 模型:对象——接口

                 可以想见int的定义(内建的类)和class的定义目的是一致的(用户自定义的类)类即类型

                 C++实现:class

        2、类的特点

              封装:用类实现,避免复杂性的暴露和错误,隐私  

                            模型:程序员(类创建者)——客户使用者(客户程序员)

                            C++实现:access specifer 访问说明符

                                               
 public:公共接口(外部函数可以访问) 

                                                protected:保护接口(外部函数中继承类的可以访问)     

                                                pravite:内部接口 (内部函数可以访问)<保密性渐大>

             继承 (为了重用)inheritance:把类进一步抽象

                       模 型:基类(类的类//我的用语)——派生类

                                    (超类/父类)                  ——(继承类/子类)
                       两种继承方式:修改派生类的接口函数(纯继承 pure inherent) 函数重载 over-ridding

                                                     is-a

                                                   增加派生类的接口函数  

                                                    is-like-a (基类无法调用派生类新函数) 

                     另一种方式:聚合aggregation(组合 composition)不同类的对象组成新类(创建一个成员对象)

                                             has-a  灵活性
          多态性:继承类的个性

                       效率问题:(基于 is-a)

                      
希望通过操作基类函数合法进行派生类实现

                       处理派生类型就像处理基本类型的过程(向上类型转化 upcasting


                        从基类函数执行不同派生类被继承函数正确性的保证:

                                        e.g  基类move()-> 派生类1.move()派生类 2.move()

                                          
其他语言:早捆绑 early binding

                                          C++:         晚捆绑 late binding (编译器到函数执行还不知道具体类型及对象个数)

                                                              关键字 virtual (先有个印象)

         3、对象的创建和销毁  (在后面进一步理解)

               两种方式:堆stack  动态分配 速度慢 量大 虚拟内存   不关注细节 灵活性

                                   栈heap  静态分配 速度快 量小 内存            关注细节(函数生命期)

             C++ 的实现:动态分配

                                     new        创建对象

                                     delete     销毁对象
[方法论] (跳过)
                                               




相关文章

相关软件