C++
newuilyang
这个作者很懒,什么都没留下…
展开
-
static 数据成员必须在类定义的外部定义
static 数据成员必须在类定义的外部定义。不象普通数据成员,static成员不是通过类构造函数进行初始化,而是应该在定义时进行初始化。静态数据成员的用途之一是统计有多少个对象实际存在。静态数据成员不能在类中初始化,实际上类定义只是在描述对象的蓝图,在其中指定初值是不允许的。也不能在构造函数中初始化该成员,因为静态数据成员为类的各个对象共享,那么每次创建一个类的对象则静态数据成员都要被重新初始化转载 2013-05-08 01:55:05 · 1325 阅读 · 0 评论 -
浅谈C中Static的作用
1.先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件和一个Makefile,一个是a.c,另一个是main.c.下面是a.c的内容:#include char a = ’A’; //global variablevoid msg(){ print转载 2013-05-07 22:54:10 · 895 阅读 · 0 评论 -
c++内存泄漏检测
检测内存泄漏的方法多种多样,有使用内存泄漏检测工具(比如BoundsChecker)检测内存泄漏;有直接看代码检测代码逻辑,看那些地方是否没有释放内存。一般地静态内存泄漏通过工具与代码检查很容易找到泄漏点;动态的内存泄漏很难查,一般通过在代码中加断点跟踪和Run-Time内存检测工具来查找。总的来说,要检查内存泄漏分几个步骤:1、首先写代码时要控制内存的释放,比如new之后要del转载 2013-05-07 23:11:51 · 476 阅读 · 0 评论 -
C/C++中堆和栈的区别
一、预备知识—程序的内存分配由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack): 由编译器自动分配释放,存放函数的参数值,局部变量等。其操作方式类似于数据结构中的栈。2、堆区(heap): 一般由程序员分配释放(malloc/free、new/delete), 若程序员不释放,程序结束时可能由操作系统回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。转载 2013-05-07 23:32:46 · 611 阅读 · 0 评论