Thinking in C++ 阅读笔记(第一章)

 2月20日

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

归入正题:

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

Bjarne Stroustrup:C++ is a general purpose programming language, not just a Object-Oriented programming language.


第一章 对象导言(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     销毁对象
[方法论] (跳过)
                                               

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值