CC++易错知识点总结
文章平均质量分 62
yy_qlxm
这个作者很懒,什么都没留下…
展开
-
sizeof——求结构体的大小
运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。 C语言中的构造数据类型有三种:数组、结构体和共用体。 数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素的个转载 2015-03-22 21:45:11 · 460 阅读 · 0 评论 -
23种设计模式
Abstract Factory:提供一个创建一系列相关或相互依赖的对象接口,而无需指定它们具体的类Adapter:将一个类的接口转换成客户希望的另一个接口,是的原本由于接口不兼容而不能在一起工作的那些类可以一起工作。Bridge:将抽象部分与实现部分分离,使它们都能够独立的变化。Builder:将一个复杂类的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。Chain o原创 2016-02-29 11:36:37 · 329 阅读 · 0 评论 -
static作用整理
一、static的作用1、函数体内,一个被声明为static的变量在函数被调用过程中维持其值不变。2、在模块内(但在函数体外),一个被声明为static的变量可被模块内的所有函数访问,但不能被模块外的函数访问。他是一个本地全局变量。3、在模块内,一个被声明成static的函数只可被本模块的函数调用。二、static变量及函数与普通变量及函数的区别1、static全局变量原创 2015-08-20 16:30:58 · 413 阅读 · 0 评论 -
const\#define\inline的特点及区别
一、#define1、宏定义只是简单的文本替换,所以注意将变量加上括号,例#include#define SQR(x) (x*x)int main(){ int a, b = 2; a = SQR(b + 3); printf("a=%d\n", a); return 0;}预期结果:(b+3)*(b+3)=25;实际结果:b+3*b+3=11;2、宏定义求最大值最小原创 2015-06-30 20:47:54 · 1354 阅读 · 0 评论 -
C++内存管理
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权转载 2015-08-06 17:06:23 · 354 阅读 · 0 评论 -
C++中重载、覆盖、隐藏之间的关系
重载:C++类中成员函数被重载,与基本函数被重载相同,具有以下特征:(1)相同的范围内(在同一个类中);(2)具有相同的函数名;(3)函数的参数不同;(4)virtual 关键字可有可无。覆盖:C++类中的覆盖是指派生类函数覆盖了基类函数,具有以下特征:(1)不同的范围(分别位于派生类与基类);(2)具有相同的函数名;(3)函数参数相同;(4)基原创 2015-08-06 10:09:17 · 322 阅读 · 0 评论 -
windows 消息机制的概述
消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他转载 2015-08-17 20:55:25 · 388 阅读 · 0 评论 -
有哪几种情况只能用intialization list 而不能用assignment
无论是在构造函数初始化列表中初始化成员,还是在构造函数体中对它们赋值,最终结果都是相同的。不同之处在于,使用构造函数初始化列表初始化数据成员,没有定义初始化列表的构造函数在构造函数体中对数据成员赋值。对于const和reference类型成员变量,它们只能够被初始化而不能做赋值操作,因此只能用初始化列表。还有一种情况就是,类的构造函数需要调用其基类的构造函数的时候。请看下面的代码:#i转载 2015-08-14 16:21:55 · 1077 阅读 · 0 评论 -
struct与class的区别
struct与class的区别可以分以下两个方面来讨论:一、C语言中的struct与C++中class的区别:struct只是作为一种数据类型定义,不能用于面向对象编程。对于如下C语言片段:struct Point{ int x; int y; void print() { printf("Point.\n");//编译错误“函数不能作为Point结构的成员” }};原创 2015-07-09 10:20:01 · 625 阅读 · 0 评论 -
引用
一、函数参数引用交换两个字符串,如下代码所示:void swap(char *&x, char *&y)//指针引用,传入函数的是实参,不是形参{ char *temp; temp = x; x = y; y = temp;}int main(){ char *a = "My name is Ann."; char *b = "What's your name?";原创 2015-07-01 21:41:25 · 377 阅读 · 0 评论 -
STL—容器知识总结
一、所有容器架构关系图二、容器详解(一)vector1、特点: (1)存储方式:动态、连续线性空间。 (2)支持随机访问,每个元素所需要的时间为常量。 (3)在末尾增加或删除元素所需要时间与元素数目无关,在中间或开头增加或删除元素效率很低,所需时间随元素数目呈线性变化。(4)只能在vector 的尾部进行push 和pop ,不能在vector 的头进行pu原创 2015-03-23 13:31:29 · 457 阅读 · 0 评论