P30 const的用法:为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替)
P23 建议读者再看实验步骤之前,先阅读一下文章末尾的【注意事项】一节。这将有助于更好的理解本章的实现。
P9 #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不管含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。
P4 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。
P47 new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。
P5 近邻法的基本思想是在测试样本x的k个近邻中,按出现的样本类别来作为x的类别,即先对x的k个近邻一一找出它们的类别,然后对x类别进行判别,即在N个训练样本中,找出x的k个近邻。
P13 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。
P41 指针本书的重点及难点之一正确地使用指针,能使程序简洁、高效不正确地使用指针,容易导致程序运行时错误,甚至导致系统崩溃Visual C++面向对象与可视化程序设计指针和指针变量指针和数组指针数组和指向指针的指针变量指针和函数Visual C++面向对象与可视化程序设计指针和指针变量指针的概念说明一个变量时,编译程序要为该变量分配一个连续的内存单元。
P21 B+树实现
P 说明:Matt Pietrek 著的《Windows 95 System Programming SECRETS》(中文译名:《Windows 95 系統程式設計大奧秘》)是深入了解WINDOWS系统的一部难得的好书,台湾的侯俊杰不仅把它译为中文还开放了繁体中文电子版免费提供下载。书中第八章专门介绍WINDOWS的PE文件格式,非常有价值,偶把这章单独整理成HTML文件,对一些台湾的电脑术语做了替换,难免有疏漏,建议参考原繁体中文电子版。
P69 推荐给想学C++的朋友一个简单但是完整的学习C++的读书路线图: C++ Primer -> c++标准程序库-> C++编程思想 -> effective C++ -> effective STL->深入探索C++对象模型
P34 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。
P 改善程序设计方法与设计思维的35个新方法。·条款一:指针与引用的区别 ·条款二:尽量使用C++风格的类型转换 ·条款三:不要使用多态性数组 ·条款四:避免无用的缺省构造函数 ·条款五:谨慎定义类型转换函数 ·条款六:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 ·条款七:不要重载&&,||, or , ·条款八:理解各种不同含义的new和delete ·条款九:使用析构函数防止资源泄漏 ·条款十:在构造函数中防止资源泄漏 ·条款十一:禁止异常信息(exceptions)传递到析构函数外 ·条款十二:理解“抛出一个异常”与“传递一个参数”或“调用一个虚函数”间的差异 ·条款十三:通过引用(reference)捕获异常 ·条款十四:审慎使用异常规格(exception specifications) ·条款十五:了解异常处理的系统开销 ·条款十六:牢记80-20准则(80-20 rule) ·条款十七:考虑使用lazy evaluation(懒惰计算法) ·条款十八:分期摊还期望的计算 ·条款十九:理解临时对象的来源 ·条款二十:协助完成返回值优化 ·条款二十一:通过重载避免隐式类型转换 ·条款二十二:考虑用运算符的赋值形式(op=)取代其单独形式(op) ·条款二十三:考虑变更程序库 ·条款二十四:理解虚拟函数、多继承、虚基类和RTTI所需的代价 ·条款二十五:将构造函数和非成员函数虚拟化 ·条款二十六:限制某个类所能产生的对象数量 ·条款二十七:要求或禁止在堆中产生对象 ·条款二十八:灵巧(smart)指针
P 你已经熟悉了STL。你知道怎么建立容器,迭代它们的内容,添加删除元素和应用常见算法,比如find和sort。但你并不满足,你不能摆脱STL所提供的超过它们能带来的好处的感觉。应该简单的任务并非那样。应该直截了当的操作确有资源泄漏或错误行为。应该高效的过程却需要比你希望给它们的更多的时间和内存。是的,你知道怎么使用STL,但你不确定你在有效地使用它。 我为你写了这本书。 在《Effective STL》中,我解释了怎样结合STL组件来在库的设计得到最大的好处。这样的信息允许你对简单、直接的问题开发简单、直接的解决方案,也帮你对更复杂的问题设计优雅的方法。我描述了常见的STL使用错误,而且向你演示怎么避开它们。那帮助你躲开闪资源漏、不可移植的代码和未定义的行为。我讨论了优化代码的方法,所以你能使STL表现得像它应该的那样快速、光滑。 本书里的信息将使你成为一个更好的STL程序员,它将让你成为一个更高产的程序员。而且它将让你成为一个更愉快的程序员,使用STL很有趣,但是有效地使用它更为有趣,这种有趣是它们必须把你拽离键盘,因为你不能相信你争拥有的好时光。即使对STL的匆匆一瞥也能发现它是一个非常酷的库,但这份酷比你可能想象的更宽更深。我在本书的一个主要目标是传达给你这个库有多神奇,因为在我编程的差不多30年里,我从未见过任何像STL的东西。你或许也没有。
P45 C 语言编程经典 100 例 【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
P1038 C语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C 语言,后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。
P 对于任何工程项目来说,统一的施工标准都是保证工程质量的重要因素。堪称当今人类最抽象、最复杂的工程——软件工程,自然更加不能例外。 高品质、易维护的软件开发离不开清晰严格的编码规范。本文档详细描述C++软件开发过程中的编码规范。本规范也适用于所有在文档中出现的源码。
P 今天尽管软件界对C++语言有各种评价,使用者仍不免会惊诧于它的博大与深入。如果对C++花一些时间进行逆流而上的“探险”之旅,也是颇为有趣。这样的探险并不惊心动魄,办法就是胡适先生说“开卷有益”,读书——展开——再读书——再展开。具体说就是读一本好书,找到书中提到的材料和参考书目(Reference),加以分类整理,再逐一阅读;对每一本书,再发现其中的线索——更多的参考书目和材料。最终,几乎是一定的结果,这张展开的读书网会逐渐收敛、清晰。历史上伟大的作品逐渐展现出来。有时许多作品同时提到某个材料或书,最终的这少数几部作品互相引用,作者们相互影响。它们常常就是伟大的源头,犹如五条欧几里德公设构建出优雅的几何系统一般。 C++的探险之旅也是这样有趣,通过书籍、沿着历史溯源,两条源头会逐步被发现,一个是对象理论,另外一个是函数式语言。
P
P C++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的应用中,如果不用成员指针,编程是非常困难的。