现在位置: 首页 > c++
2018-07-21 22:19 工业·编程 ⁄ 共 2347字 暂无评论
一.什么是字节对齐,为什么要对齐?     现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。     对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些...
阅读全文
2018-07-14 21:36 工业·编程 ⁄ 共 1229字 暂无评论
结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体: struct stu1 {    int i;    char c;    int j; }; 先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于...
阅读全文
2018-07-07 21:24 工业·编程 ⁄ 共 225字 暂无评论
1.成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。 2.如果不使用初始化列表初始化,在构造函数内初始化时,此时与成员变量在构造函数中的位置有关。 3.类中const成员常量必须在构造函数初始化列表中初始化。 4.类中static成员变量,只能在类内外初始化(同一类的所有实例共享静态成员变量)。 初始化顺序: 1) 基类的静态变量或全局变量 2) 派生类的静态变量或全局变量...
阅读全文
2018-06-30 21:18 工业·编程 ⁄ 共 425字 暂无评论
1.什么时候用到拷贝函数?   a.一个对象以值传递的方式传入函数体;   b.一个对象以值传递的方式从函数返回;   c.一个对象需要通过另外一个对象进行初始化。   如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的位拷贝。位拷贝又称浅拷贝; 2.是否应该自定义拷贝函数? 自定义拷贝构造函数是一种良好的编程风格,它可以阻止编译器...
阅读全文
2018-06-23 20:52 工业·编程 ⁄ 共 122字 暂无评论
new是运算符,malloc()是一个库函数; new会调用构造函数,malloc不会; new返回指定类型指针,malloc返回void*指针,需要强制类型转换; new会自动计算需分配的空间,malloc不行; new可以被重载,malloc不能。
阅读全文
2018-06-16 20:47 工业·编程 ⁄ 共 469字 暂无评论
1)空间大小:栈的内存空间是连续的,空间大小通常是系统预先规定好的,即栈顶地址和最大空间是确定的;而堆得内存空间是不连续的,由一个记录空间空间的链表负责管理,因此内存空间几乎没有限制,在32位系统下,内存空间大小可达到4G 2)管理方式:栈由编译器自动分配和释放,而堆需要程序员来手动分配和释放,若忘记delete,容易产生内存泄漏。 3)生长方向不同:对于栈,他是向着内存地址减小的方向生长的,这也是为什么栈的...
阅读全文
2016-12-15 06:55 工业·编程 ⁄ 共 357字 暂无评论
Boost.GIL:通用图像库 CImg :用于图像处理的小型开源C++工具包 CxImage :用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。 FreeImage :开源库,支持现在多媒体应用所需的通用图片格式和其他格式。 GDCM:Grassroots DICOM 库 ITK:跨平台的开源图像分析系统 Magick++:ImageMagick程序的C++接口 MagickWnd:ImageMagick程序...
阅读全文
2016-12-08 06:51 工业·编程 ⁄ 共 407字 暂无评论
CEGUI : 很灵活的跨平台GUI库 FLTK :快速,轻量级的跨平台的C++GUI工具包。 GTK+: 用于创建图形用户界面的跨平台工具包 gtkmm :用于受欢迎的GUI库GTK+的官方C++接口。 imgui:拥有最小依赖关系的立即模式图形用户界面 libRocket :libRocket 是一个C++ HTML/CSS 游戏接口中间件 MyGUI :快速,灵活,简单的GUI Ncurses:终端用户界面 QCustomPlot :没有更多依赖关系的Qt绘图控件 Qwt :用户与技术应用的Qt 控件 QwtPlot3D...
阅读全文
2016-12-01 06:50 工业·编程 ⁄ 共 144字 暂无评论
Cocos2d-x :一个跨平台框架,用于构建2D游戏,互动图书,演示和其他图形应用程序。 Grit :社区项目,用于构建一个免费的游戏引擎,实现开放的世界3D游戏。 Irrlicht :C++语言编写的开源高性能的实时#D引擎 Polycode:C++实现的用于创建游戏的开源框架(与Lua绑定)。
阅读全文
2016-11-25 06:49 工业·编程 ⁄ 共 315字 暂无评论
调试库, 内存和资源泄露检测,单元测试 Boost.Test:Boost测试库 Catch:一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。 CppUnit:由JUnit移植过来的C++测试框架 CTest:CMake测试驱动程序 googletest:谷歌C++测试框架 ig-debugheap:用于跟踪内存错误的多平台调试堆 libtap:用C语言编写测试 MemTrack —用于C++跟踪内存分配 microprofile- 跨平台的网络试图分析器 minUnit :使用...
阅读全文