高质量C++编程
文章平均质量分 63
insistGoGo
这个作者很懒,什么都没留下…
展开
-
C++_Const的使用
const的作用:表示被修饰变量受到强制保护,可以预防意外的变动,能提高程序的健壮性。const的用处:修饰函数的参数、返回值、函数的定义体,变量等,其中前面三个是其魅力所在。根据函数的组成,可以把const的作用分成三部分:const修饰函数的参数,const修饰函数体,const修饰函数返回值。一、用const 修饰函数的参数什么时候使用const:如果在函数体中只是对原创 2011-08-04 12:35:10 · 2016 阅读 · 0 评论 -
高质量C++编程_第4章_表达式和基本语句
与零值比较4.3.1 布尔变量与零值比较//直接使用变量名判断推荐风格if (flag) // 表示flag 为真if (!flag) // 表示flag 为假不良风格if (flag == TRUE)if (flag == 1 )if (flag == FALSE)if (flag == 0)4.3.2 整型变量与零值比较//用“==”或“!=”直接与0 比较原创 2012-06-04 19:51:51 · 928 阅读 · 1 评论 -
高质量C++编程_C++/C试题
一、请填写BOOL, float,指针变量 与“零值”比较的if语句请写出 BOOLflag与“零值”比较的if语句:if (flag){ }if (!flag){ }请写出 float x 与“零值”比较的 if 语句:const float EPSINON = 0.00001;if (x >= -EPSINON && x <=EPSINON){ }原创 2013-06-20 17:31:15 · 2665 阅读 · 1 评论 -
高质量C++编程_第8章_C++函数的高级特性(2)
类中成员函数的重载、覆盖与隐藏函数重载定义:函数名一样,参数不同特征:一个类中 + virtual可有可无 + 同名函数 + 参数不同(1) 相同的范围 ( 在同一个类中 )(2) 函数名字相同(3) 参数不同(4) virtual 关键字可有可无举例:class Base{public: void f(int x); void f(float x原创 2012-06-08 11:26:25 · 974 阅读 · 1 评论 -
高质量C++编程_第11章_提高程序的效率
提高程序的效率程序的时间效率是指运行速度,空间效率是指程序占用内存或者外存的状况。全局效率是指站在整个系统的角度上考虑的效率,局部效率是指站在模块或函数角度上考虑的效率。1、不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率。2、以提高程序的全局效率为主,提高局部效率为辅。、3、在优化程序的效率时,应当先找出限制效率的“瓶颈原创 2013-06-11 21:22:19 · 1212 阅读 · 0 评论 -
高质量C++编程_第10章_类的继承和组合
继承1、如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能和属性。2、若在逻辑上B是A的 “一种” (a kind of ),则允许B继承A的功能和属性。 例如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man可以从类Human派生,类Boy可以从类Man派生。注意:看起来很简单,但是实际应用时可能会有意外,继承的概念在程序原创 2013-06-11 15:14:00 · 1158 阅读 · 0 评论 -
高质量C++编程_第9章_类的构造函数、析构函数与赋值函数
1、构造函数任意一个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)如果不显式定义这些函数,则编译器为类产生四个缺省函数:缺省的无参数构造函数、缺省的拷贝构造函数、缺省的析构函数、缺省的赋值函数举例:A(void); // 缺省的无参数构造函数A(const A& a); // 缺省的拷贝构造函数~A(void); //原创 2013-06-07 18:02:26 · 1073 阅读 · 0 评论 -
高质量C++编程_第8章_C++函数的高级特性(1)
1、函数重载注意(1) 函数重载只能靠参数 (参数类型 和 个数) 来区分,之后编译器根据参数为每个重载函数产生不同的内部标识符,调用函数时,可以根据内部标识符来找到函数的入口地址一个函数的标识符包括:函数名、函数参数数量 及 类型信息void foo( int x, int y ) 标识符:_foo_int_float。void foo( int x, float原创 2012-06-06 21:21:45 · 1217 阅读 · 3 评论 -
高质量C++编程_第6章_函数设计(3)
在函数体的 "出口处" ,对return语句的正确性和效率进行检查注意事项如下:(1) return 语句不可返回指向“栈内存”的“指针”或者“引用”(即函数的局部变量),因为该内存在函数体结束时被自动销毁char * Func(void){ char str[] = “hello world”; // str 的内存位于栈上 return str; // 将导致错误}原创 2012-06-06 14:49:42 · 868 阅读 · 0 评论 -
高质量编程指南_第1章
【规则1-2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。 一、为什么会出现头文件被重复引用的问题 在一个CPP文件中,可以包含多个头文件,而头文件间又是可以相互引用的,这就导致一个CPP文件中可能间接多次包含某个头文件,如果头文件中 没有防止 多次编译的语句,就会出现头文件被重复定义的编译错误二、怎么防止 头文件被重复引用原创 2012-06-04 18:33:21 · 1051 阅读 · 0 评论 -
高质量C++编程_第7章_内存管理(2)
7.3 指针与数组的对比(1) 数组:分配内存位置:在静态存储区被创建(如全局数组) 或 在栈上被创建特点:数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。sizeof(数组名) = 数组的总容量 = 数组长度 * 该类型占得字节数(2) 指针:分配内存位置:可以指向任意类型的内存块特点:指针指向这一块内存,指针的指向(除原创 2012-06-06 19:27:10 · 855 阅读 · 0 评论 -
高质量C++编程_第6章_函数设计(2)
在函数 或 代码 前后 判断参数 或 变量的合法性方法:使用断言 assert作用:用来检查一些必须符合的条件,捕捉 "不应该" 发生的非法情况,如果不符合条件,则不让程序继续运行下去。使用时间 & 位置: 前置条件断言:代码执行之前 或 在函数的入口处,使用断言检查 参数 的合法性。 断言执行:表示调用者出错了 后置条件断言:代码执行之后 或原创 2012-06-05 10:30:08 · 785 阅读 · 0 评论 -
高质量C++编程_第6章_函数设计(1)
6.1 参数的规则【规则6-1-1】参数的书写要完整,如果函数没有参数,则用void 填充void SetValue(int width, int height); // 良好的风格float GetValue(void); // 良好的风格void SetValue(int, int); // 不良的风格float GetValue(); // 不良的风格【规则6-1原创 2012-06-04 21:02:23 · 971 阅读 · 0 评论 -
高质量C++编程_第5章_常量
一、const 与#define 的比较相比#define,const有很多优点(1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。(2) 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。二、const 的初始化方法:原创 2012-06-04 20:36:24 · 992 阅读 · 0 评论 -
高质量C++编程_第7章_内存管理(1)
7.1 内存分配方式(1) 在静态存储区域分配 内容:全局变量,static变量 控制着:程序结束后由OS释放 分配时间:在程序编译的时候分配内存 内存生存期:在程序的整个运行期间都存在 特点: 1、初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和静态变量在另一块区域 2、定义后,原创 2012-06-06 07:17:17 · 1130 阅读 · 0 评论