005、
1、静态变量只有到文件生存周期结束时才消亡。
如fun(){ static int c = 1,c++},如果两次运行结束输出C的值应该是3而不是2
2、若声明了一个变量后为赋值,则输出该变量的值时可以为任意值,而不一定必须为0!
3、 程序的内存形式是:代码区、全局数据区、堆区、栈区
4、栈区存放局部变量,全局数据区若不初始化为0
5、在类的声明中仅仅对静态数据成员进行引用性说明,必须在文件作用域的摸个地方使用类名限定进行定义性说明,此时也可以初始化。
6、对静态成员函数的调用使用对象名.函数名或者使用类名+函数作用域符号+函数名如:application.f()或者Application::f();其中application为对象,Application为类名。
7、类里边缺省访问命名符的变量都为私有的private;
8、友元的作用是使类外部的函数允许访问类内部的私有成员和受保护的成员,友元使用friend关键字修饰的。
9、友元是C++提供的一种破坏数据封装和数据隐藏的机制。
10、友元关系不能传递,并且友元关系是单向的。
11、作为友元可以分为2类(普通函数、成员函数)和(友元类);友元成员函数指一个类的成员函数可以是另一个类的友元。友元类是指一个类为另一个类的友元,则此类所有成员都可以访问对方类的私有成员。
12、常对象必须进行初始化,不能被更新。(类名 const 对象名)。
13、常数据类型较纠结!!!!
14、共享数据的保护(常引用、常对象、常数据成员、常成员函数),只要初始化以后就不可以更改。
006、
1、#define宏定义指令:定义带参数的宏被内联函数取代。
如#define Max(a,b) ((a>b)?(a):(b));(已过时)
2、第36上讲中的28分钟所讲的对多文件操作方法掌握不太好!!!
3、类声明文件(.h),类实现文件(.cpp),类的使用文件(main()所在的.cpp文件)。
4、C++多文件结构实现的方法是将头文件(类的声明和头文件的引用放在Header Files里边),将类的实现文件和类的使用文件放在资源文件Source Files中。
5、数组的定义方式如int Array [number];有number个元素的数组,与C#定义不相同。
6、对全部数组元素赋初始值时,可以不指定数组长度,如static int a[] = {1,23,44,5,6}。
7、cin.get(x),判断输入字符是否为一个。
8、2维数组(Array[列][行])存储顺序是按行存放的;
9、数组作为参数时,传送的是数组的首地址,对形参数组的改变会直接影响到室参数组;
10、第41上讲的例子没有仔细听!!!
007、
1、指针:另一个变量的地址,用于简介访问变量;指针变量:用于存放地址的变量。
2、& 地址运算符
3、声明指针时变量名前边要加*;
4、指针语法格式:存储类型 数据类型 *指针名 = 初始地址
5、不要用一个内部auto型变量(局部变量)去初始化static型指针。
6、为指针变量赋值时必须是地址常量或变量,不能为普通整数,但可以为0,此时表示空指针,表示现在指针谁也不指。
7、指针的类型是他所指的变量类型,而非指针本身数据值的类型,任何一个指针本身的数据值都是unsigned long int型。
8、指针的声明赋值使用过程:
int i = 10;
int *i_pointer = &i;
cout << *i_pointer << endl;
9、对将要指向的变量的数据类型未知时定义指针一般使用void类型,如void *pointer;
10、将一个void类型的指针赋值给一个有数据类型的指针的时候需要强制类型转化。
11、指针的加减法运算的结果是指针指向当前位置的前方或者后方的第几个位置。(地址运算)
12、指针的关系运算易于比较2个变量存储位置之间的关系,指针和0比较可以判断是否为空指针。
13、数组的名称就代表了数组存贮的起始地址。
14、对于数组的指针运算:a[i],*(pointer + i),*(a + i),pointer[i]都是等效的。记住a和pointer都代表首地址。
15、指针数组:数组的元素都是指针型。