摘要:1、避免使用特殊技巧。 2、避免使用全局变量。 3、编写可自上而下阅读的程序。*** 4、避免副作用。 5、使用有意义的命名。 6、程序首先是写给人看的。 7、使用最优的数据结构。 8、先保证正确,再提升性能。 9、在写完代码之前写注释。 10、先写文档后写代码。 11、手动运行每个组件。 12、代
阅读全文
随笔分类 - C & C++
摘要:1、软件会持续变化。 2、软件的熵增加。 3、如果没坏,就不要修理它。 4、解决问题,而不是症状。 5、先变更需求。 6、发布之前的错误也会在发布之后出现。 7、一个程序越老,维护起来就越困难。 8、语言影响可维护性。 9、有时重新开始会更好。 10、首先翻新最差的。 11、维护阶段比开发阶段产生的
阅读全文
摘要:1、低质量的需求分析,导致低质量的成体估算。 2、先确定问题,再写需求。 3、立即确定需求。 4、立即修复需求规格说明中的错误。 5、原型可降低选择用户界面的风险。 6、记录需求为什么被引入。 7、确定子集。 8、评审需求。 9、避免在需求分析时进行系统设计。 10、使用正确的方法。 11、使用多角
阅读全文
摘要:从需求到设计的转换并不容易 将设计追溯至需求 评估备选方案 没有文档的设计不是设计 封装 不要重复造轮子 保持简单 避免大量的特殊案例 缩小智力距离 将设计置于知识控制之下 保持概念一致 概念性错误比语法错误更严重。 使用耦合和内聚 为变化而设计 为维护而设计 为防止出现错误而设计 在软件中植入通用
阅读全文
摘要:数组是C,C++,C#语言中经常用到的数据类型,平时使用较多的是一维数组。 如果遇到多维数组,很多人就会感到迷惑,本人也一样。 个人的习惯是,对于让我迷惑不太懂的知识,在写程序的时候,尽量减少使用的频率,尽最大可能不用。 前段时间,因为工作需要,重新去了解了一下多维数组,有感而发,写下自己的总结:
阅读全文
摘要:关键字const,你可以用它在classes外部修饰global或namespace作用域中的常量,或修饰文件、函数、或区块作用域(block scope)中被声明 为static的对象。 也可以用它修饰classes内部的static或non-static成员变量。 如果const出现在星号左边,
阅读全文
摘要:#define ASPECT_RATIO 1.653 // 替换 const double AspectRatio = 1.653 若要在头文件内定义一个常量,如下示例: 若要在头文件内定义一个常量,如下示例: class专属常量 另外一种方式 宏函数 忠告: 对于单纯常量,最好以const对象或e
阅读全文
摘要:C++最初的名称,C with Classes. C。C++仍以C为基础。区块(Blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(pointers)等等 都来自C。 Object-O
阅读全文
摘要:ObjDef.h 问题描述: 假如有多个对象,如何控制每个对象的初始化与析构? 方法1: 使用指针。 如下代码: 执行结果: 总结: 关键字new在使用的时候,分配对象内存,调用对象构造函数。 关键字delete在使用的时候,调用对象析构函数,释放对象占用内存。 方法2: 使用局部静态对象。如下代码
阅读全文
摘要:ObjDef.h main.cpp 执行结果 结论: 全局对象初始化的顺序正好与析构的顺序相反。 可以按栈的数据结构进行理解,先进后出,先调用初始化的,后调用析构。 局部对象初始化与析构的顺序,与全局对象一致。
阅读全文
摘要:map.clear() 只是把map清空了,但是内存没有释放,如果要释放内存不止是要clear()掉,还要和一个空的map来进行swap,将内存释放。 注意map中如果元素不是基本类型,也要进行内存释放,如指针,vector要尤其注意,否则map占的内存太大,会造成程序崩溃。 示例代码:
阅读全文