守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 837|回复: 0

[C++] 常读常新C++Primer

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51788
    钢镚
    1422

    开源英雄守望者

    发表于 2015-1-16 13:46:14 | 显示全部楼层 |阅读模式
    由于工作上项目逻辑部分选择用C++实现,在业余时间重新去读了一次 C++Primer,我记得第一次读还是在大三暑假,1000多页的天书搞不懂那时候是怎么看完的.而工作后的这一次 我用了大概前前后后2个月的时间去看.基本也就一天翻20多页的状态.
    我发现现在很多人很难静下心来把一本技术书或者一篇中等的文章从头读到尾,即使是我写的一些BUG记录博文,很多人遇到相应的问题还是懒得翻,躁动的网络干扰着躁动的心.需要赶快让自己读书的状态回归当年 .
    这次读C++Primer的新认识
    § Object 不是 对象
    对象 按照我们中文的理解 应该是和 ,, 同级的事物,例如我给你找对象,你去找对象,表达的应该都是和我方同等级的事物.但是Object 不应该理解为对象,我觉得这个翻译一开始就有问题,虽然现在大家也渐渐接受了. Object 理解为 部件,零件更准确一点.可以拿建房子这个事情做一次对比:
    1.我通过各个对象去构建房子这个东西
    2.我通过各个部件去构建房子这个东西
    显然 部件 更精确.
    § 指针其实是地址
    这一点是我在写汇编程序的时候认识到的,无论是32位的还是64位的机器 都会有一个东西叫做 寻址空间,所有的指针 其实都是地址 无论是 间接地址 还是 直接地址,指针的指针其实也是地址 只不过指向的是一个存放另一个地址数据的内存罢了.
    § 对象是内存,对象指针是指向这块内存的地址
    理解这点很重要,举个例子:
    基类BaseClass:

    1. class BaseClass
    2. {
    3. public:
    4.     virtual bool skip() = 0;
    5. };
    复制代码
    派生类TestClass:
    1. class TestClass:public BaseClass
    2. {
    3. public:
    4.     virtual bool skip();
    5.     bool skip2();
    6. };
    复制代码
    按照上面的继承关系 我们进行如下赋值的话 会发生什么呢?
    1. int Main()
    2. {
    3.     TestClass tObj;
    4.     TestClass* pTObj;
    5.     BaseClass bObj;
    6.     BaseClass* pBObj;
    7.     // 下面进行赋值操作
    8.     pBObj = pTObj;
    9.     bObj = tObj
    10. }
    复制代码

    pBObj 被派生类指针赋值,在运行的时候,会绑定到派生类.由于指针是地址 指向的内存不会改变.

    bObj 声明为基类,虽然用派生类对象赋值,但是由于对象是内存 所以会把派生类的部分减掉.

    所以在使用C++动态绑定特性的时候千万要注意 对象 和 指针的区别.



    本文来自:http://shadowkong.com/archives/1751


    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-11-18 12:38 , Processed in 0.039010 second(s), 33 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表