zoukankan      html  css  js  c++  java
  • c++入门必备系列

    摘要:本文介绍了在有c 语言基础的前提下,如何选择性地阅读 c++ in depth 系列的书籍。指出了哪本书的哪一章是值得一读的。
    c++入门必备系列:
    The.C++.Programming.Language.Special.Edition( 3th edition)
    Publisher: Addison-Wesley Professional; 3 edition (February 11, 2000)
    by Bjarne Stroustrup
    Hardcover: 1030 pages
    ISBN-10: 0201700735
    这本书是“必备的”,也就是说,有就行了。装点门面非常合适。开口必谈本杰明,能显著地提升你的品味。
    全书五部分:
    0、简介
    1、基本功
    2、抽象机制
    3、标准库
    4、c++设计
    作为初学者,你马马虎虎读读 2 抽象机制 部分第十章 Classes,照猫画虎地把你的c程序外面套一个class。哈哈,你可以出去吹牛了:我学会 C++了!你甚至会激动地畅想你也可以像Bjarne Stroustrup 一样写本书,书的名字叫做 《2小时入门c++》。
    千万不要把这本书一口气读完。我觉得,不可能。

    Effective C++
    by Scott Meyers 
    Paperback: 288 pages
    Publisher: Addison-Wesley Professional; 2 edition (September 2, 1997)
    Language: English
    ISBN-10: 0201924889

    市场是检验书籍质量的唯一标准,288 页的厚度,50条编程箴言。把“你应该这么做”的道理娓娓向你道来。
    这是一本最好的从c向c++过渡的书。面试官也最喜欢从这里面抽题。比如:const 和 #define 有什么渊源?“Item 1:  Prefer const and inline to #define.” ;或者:为什么要声明虚的析构函数“Item 14:  Make sure base classes have virtual destructors. ”
    读这本书时,你会感觉到:Scott Meyers 怎么这么烦?是的,这本书里介绍的都是规范性的,即使你不 const、不 virtual、不 delete(),你的程序跑起来似乎也没什么问题。
    有些耐心吧,“根红苗正”是很重要的。再说,难得有 Scott Meyers 如此耐心的老师,人家讲课,那家伙可真是“晓之以理”啊。
    每天晚上一个小时,两个星期就搞定了。
    C++ Primer, Fourth Edition 
    By Stanley B. Lippman, Josée Lajoie, Barbara E. Moo 
    Pages: 912 
    Publisher: Addison Wesley Professional  February 14, 2005 
    ISBN: 0-201-72148-1
     
    哈哈!c++真是个好东东。你看
    string hishome = "挥汗如雨";
    string myhomework = hishomework;
    哈哈,老师还以为我的家庭作业也是“挥汗如雨”地 strcpy()的呢,他不知道我有神奇的 string 呢。string 真比 char* 省心多了。
    屡试不爽。传说中的“完全兼容”?
    可是,可是……
    string myhomework="砍头去尾";
    char* hishomework = myhomework;
    老师(编译器)检查出问题来了。咋回事捏?有内鬼?
    这可不是内鬼,这叫“潜规则”。
    要知道这些潜规则,就得找 c++ prime了。
    Lippman 手把手地告诉你这些标准库应该怎么用。
    Part II: Containers and Algorithms 容器和算法, 详细地介绍了 标准库的每个函数的用法。
    不过,一个比这更好的资源是:http://www.cppreferance.com/  同样是介绍标准库的函数用法的。但是要简明多了。适合快餐式的学习。
    所以,C++ Primer,也是鸡肋。

    中阶:

    think in c++

    Paperback: 1224 pages

    Publisher: Sams; 5 edition (November 25, 2004)
    ISBN-10: 0672326973

    虚函数究竟是个什么东东?const 究竟起了什么作用?临时对象是怎样产生的?
    think in c++ 是我觉得c++最好的书。“侠”“菜”咸宜。既然是中阶,那前六章的内容就不需要看了。
    8 constants 讲了 const 约束的对象、 指针、类成员、函数参数和返回值,以及临时变量的 const 属性。在c 中,const的作用弱到可以忽略,但在c++中,对 const 的漠视,会让你的程序编译过程成为一部苦难史。
    其它的,对 virtual function 的汇编语言描述,对 inline函数栈分配情况的详解。这种深度是其它的书籍没有达到的。
    其实如果读了这本书,c++ program language 就真不需要看了。
     
    Inside the C++ Object Model 
    By Stanley B. Lippman 
    Pages     : 304
    Publisher : Addison Wesley  May 03, 1996
    ISBN      : 0-201-83454-5
     

    问:c++比c 多了什么东东?
    答:两个加号。
    问:为什么多了两个加号?
    答:因为c++比多了两个东东:一是 this指针,二是虚表。
    问:一个对象有多大?
    答1:数据成员大小之各。
    答2:还得考虑字节对齐。
    答3:若有虚函数,还得加上虚表指针的大小。
    以上知识,你在其它书中就获得了。但是
    问:一个没有数据成员的对象有多大?
    你知道吗?
    只有这本书能给你答案。
    这是书所有话题围绕“效率”和“空间”展开。古有“锱铢必较”,这本书是“byte必较”。
    这本书探究了c++ 语言模型。说实话:相当晦涩。即使侯先生的中译本,也不易读明白。不过如果你想充分融合 c 的高效性和 c++的可移植性,你应该读读他。对象究竟有多大,虚函数在多大程度上影响了效率。临时对象会让你的程序有多慢。 编译器给你的构造函数和向下转型安插了哪些代码,try...catch()效率如何……
    这本书中有一些内容过于执着。对于我们“吃快餐”的人来说,不必在一节环节投入过多的业务。比如,多重继承,虚继承。模板技术出现后,这些技术已经不被推荐使用了。所以,不要去研究它们。但是,有一节你必须去看,4.2 的第一部分。
     
    more effective c++ 
    Paperback: 336 pages
    Publisher: Addison-Wesley Professional (January 8, 1996)
    ISBN-10: 020163371X

    千万不要以为 more effective c++  就是比 c++ prime more 了一点儿。 effective c++  是编程习惯, more effective c++  是设计技法。virtual ctors、smart pointers、reference counting、proxy classes,double dispatching。这本书生动地讲述了这些设计模式的应用。侯捷先生对这本书的喜爱溢于言表:“是一本好书,若不是有人发现,它就被埋没了,这个发现的人就是我。”
    书很薄,作者分门别地讲,专门方便我们“快餐一族”的,就不用“划重点”了。

    高阶:泛型编程

    泛型编程说起来简单:迭代而已。但真正学起来真不容易,原因之一就是:层层迭代迷乱了我们的双眼,我们看不到真实的代码实现。

    Modern C++ Design

    唉,07年的时候,我找遍全中国。终是没找到这本书有卖的,满心遗憾。

    终究还能借到,也算幸运。

  • 相关阅读:
    C#图片存到资源文件,以及调用图片
    error C2039: “create”: 不是“cocos2d::GLView”的成员,出错解决办法
    error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800”
    vs2013激活码
    AppDelegate.h文件
    AppDelegate.cpp文件详解
    【最终版】Cocos2d-x&JS v3.7 发布!
    cocos2d-x 3.0 示例代码分析3:BaseTest
    vue li click
    me
  • 原文地址:https://www.cnblogs.com/diylab/p/1334385.html
Copyright © 2011-2022 走看看