
C++
VinChyy
路漫漫其修远兮,吾将上下而求索
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
new与malloc的区别
属性 new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。 参数 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。 返回类型 new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故new是符合类型安全性的操作符。而malloc内存转载 2017-10-18 00:18:33 · 227 阅读 · 0 评论 -
【C++】内存对齐
【参考原文】JustDoIT:C++ 内存对齐C++ 内存对齐注:本文代码测试环境为win7 X64 cpu, 编译器为gcc4.7.1 和 vs2010内存对齐是编译器为了便于CPU快速访问而采用的一项技术我们先从一个例子开始,对下面的类(或者结构体)class node { char c; int i; short s; }no;sizeof(no)的值是多少呢,如果你的回答转载 2017-11-21 00:26:22 · 234 阅读 · 0 评论 -
自由存储区和堆
“free store” VS “heap”当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的内存块,使用free释放内存,而new所申请的内存则是在自由存储区上,使用delete来释放。” 这样听起来似乎也没错,但如果我接转载 2017-10-17 02:31:27 · 373 阅读 · 0 评论 -
C/C++内存管理详解 堆 栈
内存分配方式 简介 明确区分堆与栈 堆和栈究竟有什么区别 控制C的内存分配 重载全局的new和delete操作符 为单个的类重载new和delete 常见的内存错误及其对策 指针与数组的对比 修改内容 内容复制与比较 计算内存容量 指针参数是如何传递内存的 杜绝野指针 有了mallocfree为什么还要newdelete 内存耗尽怎么办 mallocfree的使用要点 newdelete的使用要点转载 2017-10-17 01:49:58 · 346 阅读 · 0 评论 -
C++11新特性
什么是C++11 C++11是曾经被叫做C++0x,是对目前C++语言的扩展和修正,C++11不仅包含核心语言的新机能,而且扩展了C++的标准程序库(STL),并入了大部分的C++ Technical Report 1(TR1)程序库(数学的特殊函数除外)。 C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto、decltype,和模板的大量改进。新的关键字autoC+转载 2017-10-19 17:12:18 · 215 阅读 · 0 评论 -
C++对象模型
前言对C++对象的内存布局、虚表指针、虚基类指针等进行深入解析。本文的结论都在VS2013上得到验证。不同的编译器在内存布局的细节上可能有所不同。何为C++对象模型引用《深度探索C++对象模型》这本书中的话:有两个概念可以解释C++对象模型 1. 语言中直接支持面向对象程序设计的部分。 2. 对于各种支持的底层实现机制。 直接支持面向对象程序设计,包括了构造函数、析构函数、多态、虚函数等等,这些内转载 2017-10-17 13:02:06 · 247 阅读 · 0 评论 -
C++虚函数机制解析
C++的虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际转载 2017-10-18 00:45:11 · 205 阅读 · 0 评论 -
typedef void (*Fun) () 的理解——函数指针
typedef关键字用法int i;//定义一个整型变量i typedef myInt int; myInt j;//定义一个整型变量j 上面介绍得是我们常用的比较简单的typedef的用法,下面首先介绍一下函数指针。函数指针的形式形式1:返回类型(*函数指针名)(参数表) #include <iostream> using namespace std; //定义一个函数指针pFUN转载 2017-10-18 01:01:42 · 648 阅读 · 0 评论 -
【C++】虚函数原理
【参考原文】Ryan in C++:C++虚函数原理 类中的成员函数分为静态成员函数和非静态成员函数,而非静态成员函数又分为普通函数和虚函数。Q: 为什么使用虚函数A: 使用虚函数,我们可以获得良好的可扩展性。在一个设计比较好的面向对象程序中,大多数函数都是与基类的接口进行通信。因为使用基类接口时,调用基类接口的程序不需要改变就可以适应新类。如果用户想添加新功能,他就可以从基类继承并添加相应的新功转载 2017-11-21 01:11:27 · 228 阅读 · 0 评论