摘要:
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—>全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束后由系统释放 4、文字常量区—>常量字符串就是放在这里的。程序结 阅读全文
摘要:
静态成员变量:primer中是这样说的,对于所有的对象共有一个成员变量的就用static ,提供一个所有对象共有的一个成员变量比“每一个类对象维护一个成员变量” 要更有效。 在这种情况下类的静态数据成员提供了一个更好的方案静态数据成员被当作该类类型的全局对象对于非静态数据成员,每个类对象都有自己的拷贝而静态数据成员对每个类类型只有一个拷贝静态数据成员,只有一份由该类类型的所有对象共享访问。同全局对象相比使用静态数据成员有两个优势 1 静态数据成员没有进入程序的全局名字空间因此不存在与程序中其他全局名字冲突的可能性 2 可以实现信息隐藏静态成员可以是private 成员而全局对象不能 在类体中的 阅读全文