C++
文章平均质量分 78
sunshinewave
这个作者很懒,什么都没留下…
展开
-
C/C++中的预编译指令
程序的编译过程可以分为预处理、编译、汇编三部分,其中预处理是首先执行的过程,预处理过程扫描程序源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程读入源代码之后,会检查代码里包含的预处理指令,完成诸如包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码的工作。下面介绍一些C/C++中预编译的指令。一 #指令预处理指令以#号开头,并且#号必须是该行除了原创 2016-03-30 23:17:28 · 19337 阅读 · 2 评论 -
C++内存管理
这个问题已经被其他高手说的很多了,今天我也想谈一下我对C++内存管理的理解以及我在代码中是怎么内存管理的。一。内存分布: C++内存分布主要有: 1,程序代码区:存放函数体的二进制代码。 2,常量区:存放数据常量 3,全局区(静态区):存放全局和静态变量(初始化和未初始化相邻存放) 4,栈区:存放局部变量,函数参数 5,堆区:存放new出来的变量或对象。原创 2016-03-19 12:41:03 · 1080 阅读 · 0 评论 -
智能指针
在C++中,我们使用普通指针指向一个内存对象时,在使用完之后我们需要释放它。demo_ptr* = new demo_ptr;demo_ptr->foo();delete demo_ptr;如果我们在使用完之后忘记delete或者foo调用发生异常都会造成内存泄漏。这个时候智能指针的出现就是为了控制对象的生命周期。在智能指针中一个对象什么时候什么条件下释放由智能指针自身控制,用户不需要原创 2016-03-20 00:57:24 · 668 阅读 · 0 评论 -
C++ 关键字const
const主要为了防止所修饰的变量再次被修改。一般在定义的时候初始化但const类的成员变量必须在构造函数的初始化列表中初始化。 以下是const的常见用法: 1,用于定义常量变量,这样这个变量在后面就不可以被修改const int a = 9; a=8;//错误不能再被修改 2,保护函数参数不被改变void foo(const int& val){原创 2016-03-22 23:31:41 · 432 阅读 · 0 评论 -
C++虚函数表详细解释及实例分析
C++的虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主要是一个类的虚函数的地址表,这张表解决了继承、覆盖(override)的问题,保证其能真实的反应实际的函数。这样,在有虚函数的类的实例中这张表被分配在了这个实例的内存中,所以当我们用父类的指针操作一个子类的时候,这张虚函数表就显得尤为重要了,他就像一个地图原创 2016-04-06 22:20:01 · 8111 阅读 · 0 评论