【C++ Programming】
文章平均质量分 92
JasonDing1354
关注jasonding.top
展开
-
【C++漫谈】const杂谈
const指定一个语义约束,它允许你告诉编译器和其他程序员某值应该保持不变,这样可以获得编译器的帮助,确保该约束不被违反。然而由于关键字const使用看上去比较灵活,接下来就一些常见的使用总结如下原创 2014-07-25 14:57:36 · 1264 阅读 · 0 评论 -
【C++】C++问题——类模板分离编译、函数对象、智能指针
C++类模板的分离编译过去很多类模板都是整个类连同实现都放在一个头文件里,像STL库就是遵循这样的策略来实现类模板的。现在的标准正试图矫正这种局面。 在实现中又许多函数模板。这意味着每个函数都必须包含模板声明,并且在使用作用域操作符的时候,类的名称必须通过模板变量来实例化。 比如一个operator=的代码:template <typename Object>const MemoryCell原创 2015-03-29 21:13:47 · 1457 阅读 · 0 评论 -
【C++】智能指针类和OpenCV的Ptr模板类
智能指针类引用计数智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象的指针指向同一对象。引用计数为0时,删除对象。 其基本使用规则是: 每次创建类的新对象时,初始化指针并将引用计数置为1。当对象作为另一对象的副本而创建时,复制构造函数复制指针并增加与之相应的引用计数的值原创 2015-03-29 21:12:45 · 3962 阅读 · 0 评论 -
C字符串的小问题
string与char *、char[]之间的转换提示string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。与char 不同的是,string不一定以NULL('\0')结束。string长度可以根据length()原创 2015-01-22 17:00:06 · 1129 阅读 · 0 评论 -
【编程拾遗】预编译头文件来自编译器的早期版本
背景在一个MFC ActiveX的项目工程中用到了zlib相关的文件压缩程序,这些程序是c语言编写的,在用vs2012编译时提示一下错误:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)。特查找解决方法,记录下来。解决办法当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同原创 2015-01-19 15:26:03 · 2873 阅读 · 0 评论 -
使用Zlib库进行文件的压缩和解压
zlib介绍zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权配置我是从网上直接下载了zlib的dll文件的,压缩包具体有几个部分,分别是头文件zconf.h,z原创 2015-01-13 14:52:44 · 15727 阅读 · 1 评论 -
【编程拾遗】VC++中LPCTSTR、CString、char *、string之间的相互转换
字符集在VC2012中,字符集默认采用Unicode字符集(Use Unicode Charecter Set选项),其值还可以设置为多字节字符集(Use Multi-Byte Charecter Set)。为什么要使用Unicode可以很容易地在不同语言之间进行数据交换。使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。提高应用程序的运行效率。原创 2015-01-30 14:38:46 · 8105 阅读 · 0 评论 -
利用ffmpeg和opencv进行视频的解码播放
OpenCV中有自己的用于处理图片和视频的类,可以很方便的读入文件和显示。现在视频数据流是ffmpeg解码h264文件得到的,由于要依赖该数据源进行相应的后续处理,所以需要将ffmpeg中得到的数据缓存转换成可以被OpenCV处理的Mat类对象。原创 2014-11-17 17:18:24 · 17582 阅读 · 2 评论 -
extern "c"用法解析
C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的原创 2014-11-13 16:59:57 · 1426 阅读 · 0 评论 -
【OpenCV笔记】使用VS2012和OpenCV2.4.9搭建配置OpenCV开发环境
使用MS Visual C++来创建OpenCV工程,由于不同的VS版本在配置时有所差别,现特把配置过程总结下来,以方便自己和其他朋友使用。安装Visual Studio2012和OpenCV2.4.9这里就不再对软件的安装和环境变量的设置进行说明了,其他类似的文章的设置都大抵相似,本文重点介绍一下VS2012环境的配置。原创 2014-08-06 22:27:52 · 2885 阅读 · 0 评论 -
【C++】C++问题——显式构造函数、常量引用返回值、深浅拷贝
explicit构造函数所有的单参数的构造函数都必须是explicit的,以避免后台的类型转换。否则,一些宽松的规则将允许在没有显示类型转换操作的情况下进行类型转换。A a;a = 37;上面的代码构造了一个A对象a,并进行赋值。该赋值语句不能正常工作,因为在赋值符号右侧并不是另一个A对象。 然而,C++拥有宽松的规则,通常,单参数构造函数定义了一个隐式类型转换(implicit type co原创 2015-03-23 21:31:36 · 2023 阅读 · 0 评论