自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

认知 行动 坚持

涛哥不知何许人也,亦不详其姓字。闲静少言,不慕荣利。好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终...

  • 博客(35)
  • 资源 (19)
  • 收藏
  • 关注

原创 为什么析构函数通常很虚?

前面我们已经说过, 构造函数不可以为虚函数。 现在, 我们要说, 析构函数可以为虚函数, 而且通常需要为虚函数。 先看一个简单的程序:#include using namespace std;class A{public: A() { cout << "A constructor" << endl; }};class B : public A{public: B

2014-11-30 23:36:10 7402

原创 构造函数可以是虚函数吗? 为什么?(某公司实习生招聘面试试题)

多年前的实习生面试, 碰到了这个题目, 最近又听人谈论起, 所以来简要说一下。 先来看一份简单的代码:#include using namespace std;class A{ virtual void fun() { }};int main(){ cout << sizeof(A) << endl; // 4 return 0;} 上述程序的结果之所

2014-11-30 23:09:03 8861 2

原创 最简单的异质链表---链表中存放不同类型的对象/结点

我们已经很熟悉链表了, 到目前为止, 我们接触到的链表中的结点类型都是相同的。 但是, 在实际中, 很多场景都要用链表来管理不同类型的对象/结点, 这样的链表叫异质链表, 它非常常见, 也很实用。 异质链表的实现有很多方式, 下面, 我们来介绍最简单的实现方式, 作为异质链表的入门吧。 先思考一下, 如果将这些不同类型的对象用链表进行直接链接, 显然不太好操作(不能用for循环来搞

2014-11-30 22:03:39 14393 3

原创 谈谈软件快速交付压力下程序猿们的“养寇自保”行为---为什么总在加班和通宵定位修改bug?

我们先来看看这样一个奇怪的悖论:          第一种程序猿, 花了一天时间, 就快速地实现了某一软件功能, 但是写的代码风格很差, 别人难以读懂, 该加代码注释的地方不加, 该加异常判断的地方不加, 不考虑什么代码框架。结果呢, 当场景复杂后,代码bug到处跑出来, 于是又忙乎地搞了两天的bug定位和修改。 这三天, 领导看到了他的快速, 看到了他的忙碌, 看到了他加班那么晚回去, 心想

2014-11-29 23:33:55 9601 3

原创 一个简单的进程计时器

超时太常用了, 下面来写一个进程计时器, 并用它来做超时限制#include #include #include using namespace std;// 计时器long getTime(){ static int flag = 1; static long firstTime = 0; if(1 == flag) { firstTime = time(NU

2014-11-29 21:18:39 8002

原创 刚才写代码遇到一个很不起眼的bug, 火眼金睛的猿们来看看吧

直接看三个程序:#include using namespace std;int main(){ char szBuf[1025] = "abc\\defg"; char *p = strrchr(szBuf, '\\'); *p = '\0'; cout << szBuf << endl; // abc return 0;}#include using

2014-11-29 21:09:00 7896 5

原创 软件使用权的控制---C/C++代码的实现

有时候, 自己写了一个软件, 放到网上, 大家都可以使用。但是, 如果要控制别人的使用权, 该怎么办呢? 在本文中, 我们用一个极其简单的例子来说明控制机制。 当然, 如果你的软件写得够好, 有很大的客户需求, 搞一个使用权的控制机制, 说不定可以小小地赚一笔钱呢 我们把这个软件的名称定为Beauty.exe吧, 其源码是(为了简便起见, 魔鬼数字我就不替换成宏了):

2014-11-29 20:48:27 19391 9

原创 如何获取当前运行的.exe所在路径的双斜线形式?---利用GetModuleFileName

先来看一个简单的程序:#include #include using namespace std;int main(){ char szBuf[1025] = {0}; GetModuleFileName(NULL, szBuf, sizeof(szBuf)); cout << szBuf << endl; // C:\Documents and Settings\A

2014-11-28 23:42:11 8544

原创 XX杯, 再见!

2014年XX杯乒乓球联赛落下帷幕, Chen GG获得男单冠军, MKT获得了团体冠军, 祝贺一下         在本次男单比赛中, 我个人闯入公司男单16强, 也算可喜可贺. 在团体比赛中, 我们也是16强。 本届比赛, 留下了许多精彩的瞬间。 单打比赛中, 受公司会长的委托, 我负责自己小组的组织安排工作, 最终顺利完成这个小任务。 在团体赛中, 再次受会长委托, 担任1/4决赛,

2014-11-27 00:26:11 7778 1

原创 谈谈规避问题在软件开发中的一席之地

什么是规避问题呢?首先要说明, 规避问题不是逃避问题。 比如说, 明天有一个比较重要的考试, 今晚我就在考点附近租了一间房子, 结果呢, 快睡觉的时候, 水龙头坏了, 在不断地滴水, 2s一滴, 而且声音还不小。 怎么办呢? 已是夜深人静, 酒店服务人员比较稀少了, 即使有, 也没有水电修理工啊。 难道非要打个电话, 让别人过来修好? 这不是影响明天的考试了吗? 找酒店服务人员

2014-11-27 00:06:24 8863

原创 学会利用差异对照法快速定位bug所在的模块

在软件开发中, 遇到bug时, 不同模块的开发人员经常相互扯皮, 我门说是你们的问题, 你们说是我们的问题, 结果呢,两方人都不愿意花精力去仔细定位, 两方都希望对方先分析一下, 然后确定bug所在位置。 相互踢皮球嘛        在实际开发中, 这也见怪不怪了。大家都很忙, 有时候需要一些特殊的方法, 确定问题所在的模块, 而不是一有问题, 就去死抠代码, 这样会累死的。

2014-11-26 00:05:30 8746

原创 int* 转double* 时的内存越界访问

今天一同事让我帮看一个程序, 最后定位到的问题是内存越界:int main(){ int a = 0; *(double*)&a = 0; // 访问了非法内存, 运行时出错 return 0;}#include using namespace std;int main(){ int a = -1; int b = -1; *(double*)&b = 0; //

2014-11-25 23:18:43 7992

原创 昨晚在公司附近遇到两个行骗的女孩---大家要提高警惕啊, 这年头, 坏人特别多

         昨天在公司加班, 比较晚下班, 回来的路上, 突然被一个女孩拽了一下衣服, 我一看, 有两个装得很可怜的女孩向我走来。 她们开口就说: 我们遇到了一点困难, 没钱吃饭, 肚子非常饿, 我们不要钱, 你带我们去吃点东西就可以了。 我一看, 心想, 这不要钱, 只要东西吃, 应该是真遇到困难了, 当时犹豫了一下, 但很多年前被类似的人骗过, 所以最后就没有帮她们。 不料, 她们两人随...

2014-11-23 22:53:41 7646 1

原创 思维不可太死板: 在程序中加上某行后有编译问题, 去掉后就没有编译问题, 能否断定:一定是本行出了问题?

在某大型软件中, 原来代码是

2014-11-23 19:01:40 7609

原创 结构体数组做映射(写了个风格还算靠谱的程序, 欢迎大家找茬拍砖, 共同进步)

之前说过了, 数组的本质就是映射, 下面, 我们看看更高级的映射---利用结构体

2014-11-22 01:04:04 9440 2

原创 语法糖---C++的运算符重载

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

2014-11-08 22:48:13 7976

原创 const A& fun(const A& a) const {} 的理解

不说废话, 直接上代码:

2014-11-08 12:04:49 12910 2

原创 形象地聊聊C++中的浅拷贝与深拷贝

先来看一个简单的程序:#include using namespace std;class Point{public: int x; int y; Point(int xx, int yy) { x = xx; y = yy; }};int main(){ Point A(1, 2); Point B(A); // 执行了编译器默认的浅拷贝 cout

2014-11-08 00:13:37 7291 1

原创 为什么C++静态成员函数不能访问非静态成员变量、不能调用非静态成员函数?(面试常考)

先来看一个简单的

2014-11-07 21:36:01 11141 1

原创 如何在程序中加载各个模块(也谈C++多态的威力)

在一个大型项目或工程中,

2014-11-07 21:08:02 8125 3

原创 深入理解C++中的对象和对象引用

先来看一个入门级的程序:

2014-11-07 00:04:51 14347 5

原创 C++中的指针引用

先热身一下:

2014-11-06 23:28:33 7072

原创 C++的常量引用

我们先来看一个简答的程序:#include using namespace std;int main(){ int &a = 1; // error cout << a << endl; return 1;} 显然, 这个程序是错误的

2014-11-06 23:20:18 13634 7

原创 今夜, 我们无缘8强 (Life is a chain of experiences)

一年前的乒乓球团体赛, 我们一路过关斩将,

2014-11-06 00:05:30 7742

原创 C++静态成员变量

#include using namespace std;class A{ static int x;};int A::x = 100;int main(){ A a; return 0;}       如此一来, 似乎是对

2014-11-04 23:18:03 7334 1

原创 C/C++中##符号的使用

#include using namespace std;#define A(i) a##iint main(){ int A(3) = 3; cout << a3 << endl; // 3 return 0;}      但是, 下面这样不行

2014-11-04 22:53:15 7328 2

原创 原来union也可以有自己的函数(方法)

第一次听说, 所以来记录一下:#include using namespace std;union U{private: int i; float f;public: U(int ii) { i = ii; } U(float ff) { f = ff; } void setInt(int ii) { i = ii; } void set

2014-11-04 00:05:50 8582

原创 对象的初始化

#include using namespace std;class A{ private: int x; int y;public: A() { cout << "default constructor" << endl; } A(int xx, int yy) { cout << "constructor" << endl; x = xx; y

2014-11-03 23:25:44 7031

原创 简要验证先构造的对象后析构(某公司面试题---不考虑静态和全局对象)

显然, 这个题目中, 构造函数和析构函数必须携带对象的某个

2014-11-02 22:36:05 7498 3

原创 为什么空类的大小不为0? (某公司校园招聘招聘面试试题)---我当时只知道其然, 但不知道所以然!

我们先来看一个简单的

2014-11-02 20:58:01 7488 2

原创 《C++编程思想》中的CStash第一个程序的欣赏

看着看着,

2014-11-02 19:54:03 8248 3

原创 C/C++中#符号的使用

#include using namespace std;#define PR(x) cout " << x << endl;int main(){ int i = 10; PR(i); float f = 10.3f; PR(f); return 0;}      结果为:

2014-11-02 12:06:44 7270

原创 遇到了static_cast

最近遇到了代码

2014-11-02 11:57:16 7161 1

原创 实战中遇到的C++流文件重置的一个大陷阱: 为什么ifstream的seekg函数无效?

今天下午遇到这样一个问题: 逐行读取了

2014-11-02 01:34:07 19054 21

原创 我眼中的C++继承初探

code0.cpp 热身一下C++, 无继承:#include &lt;iostream&gt;using namespace std;class A{public: int x;};class B{public: int x;};int main(){ cout &lt;&lt; sizeof(A) &lt;&lt; endl; // 4 c...

2014-11-01 23:26:07 7152 1

ipscanner.rar

获取网络的ip, host name和mac地址。我想免费让大家下载, 但csdn规定了必须设置积分, 没办法。

2017-12-01

linux protobuf安装文件

linux, google protobuf, 安装文件。 使用方法:http://blog.csdn.net/stpeace/article/details/53029812

2016-11-04

linux tree命令的源码

很多linux上没有tree命令, 该资源提供了tree命令的源码, 大家可以下载, 编译并安装, 具体请参考:http://blog.csdn.net/stpeace/article/details/49524273

2015-11-01

编译好的openssl库和头文件

编译好的openssl库, 欢迎使用, 具体使用方法, 请见http://blog.csdn.net/stpeace/article/details/41921287

2014-12-14

入门数据库sqlite3的最佳实践资料

入门数据库sqlite3的最佳实践资料, 里面是我打包好的程序, 附加一些数据库工具, 非常可以。 当然你也可以参考我的博文http://blog.csdn.net/stpeace/article/details/38503843

2014-08-12

Wireshark抓包工具

Wireshark抓包分析工具, 非常好用, 非常实用。

2014-06-08

优秀的截图软件

截图软件fast stone. 解压即可使用。 解压后, 可能会产生一些依赖性文件, 请不要轻易删除。

2014-05-25

获取网卡信息所需的头文件和库

获取网卡信息所需的头文件和库:IPEXPORT.H Iphlpapi.h IPHLPAPI.LIB IPRTRMIB.H IPTYPES.H

2013-10-19

哈希值计算软件

可以计算md5, sha1, sha256等哈希值的工具软件,我无法形容它的优秀。

2013-10-18

在Windows下学习Linux命令

在Windows下想学linux命令的同志,你终于找到了该资料。用法:解压,然后双击其中的cmd.exe, 然后就可以输入linux命令了,比如ls等(千万要注意,不要进行路径切换,否则linux命令就执行不了,总之,要确保相应文件在当前目录下)。

2013-08-08

计算机网络第5版谢希仁编配套光盘资料

计算机网络第5版谢希仁编配套光盘资料,这是计算机考研的指定教材对应的资料,你应该拥有它。

2013-07-19

OllyDBG反汇编工具

OllyDBG反汇编工具,非常强大。深化功底,需此工具。

2013-07-19

masm汇编器

微软的汇编器,其中有关键的masm.exe和link.exe,我试过,发现可用。

2013-07-19

word转pdf的插件

word转pdf的插件,直接安装即可,安装完后,“另存”word文档的时候,可以选择pdf(我用的word版本为2007)。

2013-07-18

音频处理软件Gold Wave

一款强大的音频处理软件,可以对音频进行各种处理。例如:如果你在准备某考试,需要听音频资料,但是,你嫌音频太慢,而且你的MP3播放器无法加速,那么你可以用该软件对音频本身进行加速,即改变音频本身,使之变快。另外,在处理的时候,可以实现批处理(我亲自实践过,发现可行)。

2013-07-17

H.264visa软件

一款非常强大的H.264视频码流的解析软件,可以看到解码后视频的像素值,运动矢量,宏块等非常多的信息(也可以打开原始的YUV视频,并看到像素值,但必须先用该软件打开某一H.264视频码流),比Elecard StreamEye软件(有bug)更为强大,我一直用H.264visa,目前没有发现有什么bug. 另外,该软件安装后1个月就会过期,没有关系,1个月后,你重新安装一次即可。

2013-07-13

Elecard StreamEye

Elecard StreamEye,一款分析H.264视频码流的工具,如果你在学习H.264,那么,你应该拥有它。

2013-07-13

YUVviewer :原始的YUV视频的播放器

原始的YUV视频的播放器(软件不是我写的),如果你做视频处理、视频压缩编码、视频通信、视频检索、视频取证,那么你很可能需要它。该软件的缺点是:你无法看到YUV视频的像素值。

2013-06-24

经典的C语言编译器:TC2.0

一款经典的C语言编译器:Borland Turbo C 2.0. 怀念Borland产品的人可以用一下,体验一下DOS下的编程。如果是C语言初学者,建议用MS的VC++6.0. 我试过,该TC2.0可以正常使用。

2013-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除