C++第四天笔记2016年01月29日(周五)A.M

1.   类的静态成员

静态局部变量:

(1)    静态局部变量的空间并非在栈区。

(2)    静态局部变量可以保留上一次函数调用时的计算结果,这与全局变量很相似,但是静态局部变量只能在当前函数体内可见。

(3)    静态局部变量如果未进行初始化,会被编译器初始化为0。

静态变量的声明只会执行一次,以保证static静态变量只有一块空间

静态成员变量的初始化放在类定义之外单独做初始化,
基本格式:类型 类名: : 静态成员变量名

例: int Employee::next_id = 0;//静态成员变量的初始化,不指定初值,则默认为0。
静态的成员变量在内存中只有一份空间,并不依附于对象存在。  存在于:全局数据区(静态数据区)

在静态成员函数中 不能 访问类中的非静态成员。原因:静态成员函数中不存在this指针。

静态成员函数的调用方式:
        (1):类名: :函数名(参数列表); 推荐使用
        (2):对象名.函数名(参数列表);

2.友元类和友元函数  函数分为:全局函数,类的成员函数,类的友元函数 友元:可以访问某一个类的私有成员,但破坏了类的封装性。 类的友元函数和全局函数的调用形式相同。
3. 嵌套类:

声明内部类对象的基本格式:外部类名::内部类名 对象名;

时间: 2024-10-19 17:18:20

C++第四天笔记2016年01月29日(周五)A.M的相关文章

C++第二天笔记2016年01月27日(周三)P.M

1.  Point(Point p,int r):p(_p){} 对象p  p.print();//代码复用调用Point中的打印函数 2.  对象成员变量,没有显示使用初始化列表做初始化,编译器依旧会自动调用成员变量所属类中的构造函数(默认构造)对对象成员变量进行初始化. 3.  const: const修饰函数时,只能修饰类的成员函数. const成员函数体内 不能修改成员变量的值 const成员函数体内只能调用const成员函数 const对象只能调用const成员函数 4.  析构函数:

C++第十四天笔记2016年03月10日(周四) A.M

1. 线性结构:链表和数组 数组:可以访问任意位置的元素.添加删除操作相对麻烦. 链表:添加删除效率相对较高.只能从第一个元素开始访问. 访问较多:数组.添加删除较多:链表. 数组:元素类型 数组名[元素个数]; 2.  如何创建链表: 链表:链表中的每一个元素称为节点. 节点:数据域(存储数据)和指针域(存储下一节点的地址编号). 3.  双向链表:数据域和指针域(包含两个,其中一个指向下一个节点,另外一个指向上一个节点) 4.  头结点:链表中的第一个节点 空链表:链表中无任何节点. 1 #

C语言第七天笔记2016年01月21日(周四)P.M

1. 内存分配: C++里面使用new  delete 注意: #include <iostream> #include"stdlib.h" using namespace std; int main(int argc, char *argv[]) { int* p=new int(5); //申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5. int* q=new int[5]; //申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5.

C语言第五天笔记2016年01月18日(周一)A.M

1. 函数(补充,了解) 函数形参有默认值,必须自右向左依次有默认值 例:int  foo(int a,int b=1,int c=2){ return a+b+c;}//合法 int  foo(int a=1,int b,int c=2){ return a+b+c;}//不合法 内联函数:声明时使用inline关键字(并不一定所有的编译器都支持内联函数). 内联函数:在编译之前,编译器会用函数体替换函数调用语句,执行时,省去了“寻找函数实现”的时间.是一种用空间换时间的操作 普通函数:程序运

C语言第六天笔记2016年01月19日(周二)A.M

1. 指针: 指针变量的值被修改,指针变量的指向也会被修改(指针变量存储了谁的地址,指针变量就指向谁). 2. 指针变量 特点: 可以用来存储地址 值可以变化(指向可以更改) “指向”特定类型的数据 多个指针变量可同时指向一个变量 int* p=(int )malloc(4);  // (堆空间)  释放 free(p) 野指针: int *p; //p指向不明确的指针. 空指针: 值为null的指针 //不能对空指针进行解地址 3. 内存5大分区:(根据处理机制不同) 栈区:由系统自动分配空间

C语言第五天笔记2016年01月18日(周一)P.M

1. 指针 int a=10; int *p; p=&a; *p=a;//p=&a;未添加之前 *p指针未初始化 printf("%d\n",*p); 同类型声明: int a, * p,** q;

C语言第三天笔记2016年01月14日(周四)P.M

1. 二维数组: 例:int a[5][6] :5行6列 在物理内存中存储时,以一位数组的形式存放. 注:初始化时行数可省,列不能空,数组名不可赋值 2. continue:结束本次循环  即直接返回至判断条件 while: 使用条件内的数字初始化数组元素. break:跳出整个循环 3. 函数:用来实现指定功能的代码模块. 函数返回值的个数最多有一个 函数声明:return-type function-name(argument declarations); 返回值类型 函数名(参数列表) 函

C语言第三天笔记2016年01月14日(周四)A.M

1. while循环:当型循环 先执行判断条件,循环体可能一次都不会执行 do-while循环:直到型循环 先执行循环体后判断条件,循环体至少会执行一次. 2. for循环: for (expr1; expr2; expr3) statement //循环体 expr1:初始化循环控制变量(可选) expr2:循环判断条件(可省)若省略判断条件永真,有可能导致死循环 expr3:修改循环控制变量(可省) 在循环结构中,必须有修改循环控制变量的操作. break:退出整个循环 练习:9*9乘法表

C语言第八天笔记2016年01月22日(周五)A.M

1. 作用域: 静态全局变量与普通全局变量:前者的作用域缩小,生命周期相同. 静态局部变量与普通局部变量:前者的生命周期延长,作用域相同. 2. 函数指针: int (*func_ptr)(int,float*);//声明函数指针. int exchange(int,float*); exchange(1,p); func_ptr(1,p); 3. 数组指针.指针数组 指针数组:char* s[10]; int* a[10];(数组,数组中的元素都是指针类型). 数组指针: int* p;//整