• C++中几个值得分析的小问题

    Posted by : lon.y@qq.com on 2017年7月4日

    下面3个小问题都是我认为C++ Beginner应该能够解答或辨别清楚的。希望我们能通过题目挖掘更多的信息,而不仅仅局限在解题。我最喜欢说的话:能力有限,所以作为抛砖引玉,希望共同讨论,指出错误。 另外,我都是碰到一个觉得有必要记录的问题,就写下来说说,所以每一篇内容可能不是单一主题。 1、先来看一道简单题目。有下面这个继承类: class Person { public: void Walk() //普通人的“走” { cout

    阅读全文...

  • 浅谈C++指针直接调用类成员函数

    Posted by : lon.y@qq.com on 2017年7月4日

    在编程工作中常会遇到在一个“类”中通过函数指针调用成员函数的要求,如,当在一个类中使用了C++标准库中的排序函数qsort时,因qsort参数需要一个“比较函数”指针,如果这个“类”使用某个成员函数作“比较函数”,就需要将这个成员函数的指针传给qsort供其调用。本文所讨论的用指针调用 “类”的成员函数包括以下三种情况: (1).将 “类”的成员函数指针赋予同类型非成员函数指针,如: 例子1 (2) 在一个“类”内,有标准库函数,如qsort, 或其他全局

    阅读全文...

  • C++读取、旋转和保存 bmp 图像文件编程实现

    Posted by : lon.y@qq.com on 2017年7月4日

    通过我这些天用C++读写bmp图像的经历,摸索再摸索,终于对bmp文件的结构、操作有了一定的了解,下面就大概介绍bmp图片纯C++的读取、旋转和保存的实现过程。 要用C++读取bmp图片文件,首先要弄清楚bmp格式图片文件的结构。可以参考这篇文章:http://blog.csdn.net/xiajun07061225/article/details/5813726 有几点需要注意的是: 在读取bmp图片的时候,一定要注意内存对齐的问题,譬如文件头,否则无法

    阅读全文...

  • 详解 C++ 的模板中 typename 关键字的用法

    Posted by : lon.y@qq.com on 2017年7月4日

    typename的使用场合 用处1, 用在模板定义里, 标明其后的模板参数是类型参数。 例如 template T foo(const T& t, const Y& y){//....}; templace class CTest { private: T t; public: //... } 其实,这里最常用的是使用关键字class,而且二者功能完全相同,这里的class和定义类时的class完全是两回事,C++当时就是为了减少关键字,才

    阅读全文...

  • C/C++ 二进制读写 png 文件

    Posted by : lon.y@qq.com on 2017年7月4日

    为了弄OpenGl的纹理代码,发现书上没有图片像素的获取,然后就想写个来获取png的,结果花了一天的时间没弄清楚为什么出现数据个别正确其他的却是205 突然想起来以前弄软工的时候虽然那个网站只完成了登入注册和文本显示,但是想在数据库中存储图片的时候了解到1存图片地址,2存图片二进制数据。 没错就是二进制。然后拿起C++的翻开找啊找,弄了个ifstream ios::binary的,成功数据正常。 时隔一天才又想起来r和rb好像是有区别的。没错,那些知识确实

    阅读全文...

  • C/C++ 结构体字节对齐详解

    Posted by : lon.y@qq.com on 2017年7月4日

    结构体的sizeof 先看一个结构体: struct S1 { char c; int i; }; sizeof(s1)在VC6中按默认设置得到的结果为8。 我们先看看sizeof的定义——sizeof的结果等于对象或者类型所占的内存字节数,好吧,那就让我们来看看S1的内存分配情况 S1 s1 = { 'a', 0xFFFFFFFF }; 定义上面的变量后,加上断点,运行程序,观察s1所在的内存,你发现了什么 以我的VC6.0(sp6)为例,s1的地址为0

    阅读全文...

  • pthread_create() 给创建的线程传递参数

    Posted by : lon.y@qq.com on 2017年7月4日

    对于pthread_create为创建线程传递参数的问题,先前只知道传递单个参数的方法,现在需要传递多个参数。 对于新手的我比较纠结,因此,上网查找资料,发现CU里面的一个帖子(帖子地址后面给出)。 下面把帖子中认为对自己有用的知识摘录下来,以后经常看看。 帖子内容: 1、传递int、short、char等,大小少于一个指针长度类型的,强制转换为(void*),然后在线程函数里转换回来即可; 2、传递多个参数的时候,创建线程的函数内malloc()一个结构

    阅读全文...

  • C++ 中三种正则表达式比较(C regex,C ++regex,boost r…

    Posted by : lon.y@qq.com on 2017年7月4日

    工作需要用到C++中的正则表达式,所以就研究了以上三种正则。 1,C regex /* write by xingming * time:2012年10月19日15:51:53 * for: test regex * */ #include #include #include #include #include #include using namespace std; const int times = 1000000; int main(int arg

    阅读全文...

  • 模板显式、隐式实例化和(偏)特化、具体化的详细分析

    Posted by : lon.y@qq.com on 2017年7月4日

    最近看了看到了模板的特化,突然想起来上说的显式具体化、隐式具体化、特化、偏特化、具体化等概念弄得头晕脑胀,我在网上了找了好多帖子,才把概念给理清楚。 一下是我把再网上找的资料整理一下。 看着这么多叫法,其实就是三种。 1. 显示实例化 2. 隐式实例化 3. 特化(=具体化)、偏特化 一、实例化 1.显示、隐式实例化 什么是实例化:一个通过使用具体值替换模板参数,从模板产生的普通类,函数或者成员函数的过程。 显示实例化:通过名字可见,就是清楚的表明你要实例

    阅读全文...