首页 > c++入门必备系列

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年的时候,我找遍全中国。终是没找到这本书有卖的,满心遗憾。

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

转载于:https://www.cnblogs.com/diylab/archive/2008/11/16/1334385.html

更多相关:

  • 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:23.8 GB |时长:44h 59m 学习C++编程和游戏开发基础和虚幻引擎 你会学到什么 通过简单的例子和插图学习C++编程基础 调试和解决问题的技能 通过虚幻引擎代...

  • 虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:55节课(8小时53分钟)|大小:6.72 GB 虚幻引擎...

  • 1,C#不支持多重继承,这是与C++明显区别的地方,说真的多重继承有时候用起来挺麻烦的,可能微软怕你用不好吧,不给你提供了,但我个人觉得没有了多重继承感觉有点可惜。 2.在标准的C#安全代码中不支持指针类型的操作,然而,你却能在微软所谓的“非安全代码”中操作指针类型对象。 3.C#中所有对象都只能通过关键词“new”来创建,C++的“...

  • C++所有的变量都可以在需要使用时再定义。 C语言中的变量都必须在作用域开始的位置定义。   register 关键字请求编译器将局部变量存储于寄存器中     在C语言无法获取register 变量的地址     在C++中可以取得 register 变量的地址  C++编译器有自己的优化方式,所以几乎不用register   在C...

  • 人工智能和机器学习领域有哪些有趣的开源项目?投递人 itwriter 发布于 2014-12-02 11:21 评论(0) 有20人阅读  原文链接  [收藏]  «   本文简要介绍了 10 款   Quora 上网友推荐的 人工智能和机器学习领域方面的开源项目。   GraphLab   GraphLab 是一种新的面向机器学...

  • 最近在互联网上出现了一个让我比较气愤的技术图书相关的事件,事情由《JavaScript征途》一书在51JS上的贴子引起,有人提出这本书的样张里出现了太多错误,但是慢慢的由于作者(即css8)的“死撑”,“事态慢慢升级”,一发不可收拾。 今早我看了hax写的炮轰这本书的文章,文章里的话写的比较重,可能是由,但至少有理有据,考证严谨,引...

  • 草色新雨中, 松声晚窗里。之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作。虽然 PowerQuery 已经将大部分常用功能内置成到功能区。基本能完成我们大部分的报表自动化功能。但是总有些复杂的或者个性化的问题是开发团队没有预先想到的,这时我们就需要学习 M 语言。一、M 语言在哪里?M语言的函数公式有三个地...

  • 前言从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。基本概念表达式表...

  • 1.1函数1.1.1什么是函数函数就是程序实现模块化的基本单元,一般实现某一功能的集合。函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态。1.1.2函数的作用函数是组织好的,可重复使用的,用来...

  • 原标题:基于Python建立深度神经网络!你学会了嘛?图1 神经网络构造的例子(符号说明:上标[l]表示与第l层;上标(i)表示第i个例子;下标i表示矢量第i项)单层神经网络图2 单层神经网络示例神经元模型是先计算一个线性函数(z=Wx+b),接着再计算一个激活函数。一般来说,神经元模型的输出值是a=g(Wx+b),其中g是激活函数(...

  • 在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重。小编刚开始学习的时候也会有这个感觉。不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个。今天小编就把常用的函数汇总一下,为大家能够能好的学习MySQL中的函数。MySQL常使用的函数大概有四类。时间函数、数学函数、字符函数、控制函数。让我...