自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ljianhui的专栏

也许生于世上,无重要作为,仍有这份积累会留下......

  • 博客(5)
  • 资源 (18)
  • 收藏
  • 关注

原创 C++对象模型之RTTI的实现原理

RTTI是Runtime Type Identification的缩写,意思是运行时类型识别。C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现在RTTI的类型识别已经不限于此了,它还能通过typeid操作符识别出所有的基本类型(int,指针等)的变量对应的类型。C++通过以下的两个操作提供RTTI:(1)typeid运算符,该运算符返回其表

2015-06-14 03:11:19 23699 13

原创 Linux系统的命令源代码的获取方法

我们知道,Linux是开源的,它自带的功能强大的命令也是开源的,也就是说,我们可以获得这些命令的源代码并研究它。那究竟如何获得系统的命令的源代码呢?命令的源代码是一个软件包为单元的,放在一个软件包的源代码中,若要下载一个命令的源代码,就要把这个命令所属的软件包的源代码都下载下来。命令的源代码就在下载的源代码的相关目录内,通常是src目录,相应的主文件名为cmd.c,其中cmd为具体的命令,如ls命

2015-06-11 00:21:08 23651 3

原创 C++对象模型之详述C++对象的内存布局

本文主要讨论继承对于对象的内存分布的影响,包括:继承后类的对象的成员的布局、继承对于虚函数表的影响、virtual函数机制如何实现、运行时类型识别等。由于在C++中继承的关系比较复杂,所以本文会讨论如下的继承情况:1)单一继承2)多重继承3)重复继承4)单一虚拟继承5)钻石型虚拟继承

2015-06-08 10:16:48 12187 7

原创 C++对象模型之编译器如何处理函数返回一个对象

1、与经验不符的输出我们知道,当发生以下三种情况之一时,对象对应的类的复制构造函数将会被调用:1)对一个对象做显示的初始化操作时2)当对象被当作参数传递给某个函数时3)当函数返回一个类的对象时所以,当我们设计一下函数(普通或成员函数)时,经验告诉我们,出于效率的考虑,应该尽可能返回一个对象的指针或引用,而不是直接返回一个对象。因为在直接返回一个对象可能会引起对象的复制构造过程,这意味着会发生一定量

2015-06-02 00:06:07 3300 3

原创 C++对象模型之复制构造函数的构造操作

复制构造函数用于根据一个已有的对象来构造一个新的对象。1、构造函数何时被调用有三种情况会以一个对象的内容作为另一个类的对象的初值构造一个对象,分别是:1)对一个对象做显示的初始化操作时,如class X { ... };X x;X xx = x; // 或 X xx(x);2)当对象被当作参数传递给某个函数时3)当函数返回一个类的对象时2、默认的成员复制初始化如果class没有提供一个显式的复制构

2015-06-01 02:16:18 2314 5

linux下android apk反编译工具

linux下的android apk反编译工具,仅用于学习!使用详情请参考如下文章:http://blog.csdn.net/ljianhui/article/details/38985441

2014-09-01

代理模式+智能指针SharePtr代码

本人实现的一个代理模式的代码,同时也有一个实际应用代理模式的智能指针SharePtr的实现代码。

2014-06-09

C++实现的单例模式代码

本人使用C++实现的单例模式,实现方式有三种,包括单线程下的,多线程下的代码。

2014-06-08

C++ string类的隐式共享写时拷贝实现代码

本人采用C++实现的string类,采用的内存管理策略是隐式共享写时拷贝,其实现参考了智能指针的思想。

2014-04-03

实现内存半自动释放的基类Object

内存管理是C++最令人痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的性能,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在。难道使用C++就不能像使用C#或java那样,不管内存的释放吗?其实我们可以通过适当的设计来减轻我们对内存的管理任务。虽然不能像C#或java那样,完全不管内存的使用和释放,但是也能在很大程度上减轻我们对内存的管理压力。下面就以本人设计的一个基类说明一下,如何实现C++内存的半自动释放。

2014-02-22

泛型链表——C语言实现

使用C语言实现的“泛型链表”,该链表为循环双链表,它的设计参考了C++的STL容器库中的容器list及泛型算法的接口,并使用迭代器来遍历链表。使用时只需要include头文件即可,隐藏了List类型的具体实现。用户并不需要知道链表的具体实现,只需要调用头文件中的接口来进行相应的操作即可。

2014-01-24

在文本文件中查找关键字

在文件中查找指定的关键字,采用了两种不同的方法实现,一种一次读入所有的数据,一种是使用缓冲区,多次读入数据到缓冲区中进行字符串匹配。

2013-12-18

TCP/IP高效编程-改善网络程序的44个技巧

网络编程的经典书籍,内容清晰,该书的内容简介:   作为网络程序员,你是否发现自己的应用程序远远不够健壮?那么,你需要了解编写高效TCP/IP程序所需的各种知识。本书正是这么一本经典著作,它专注于协议族中那些细微的特性,提炼出的44个技巧可立竿见影地提升编程能力。   本书在介绍这些技巧的同时,对TCP/IP编程的基本思想和概念进行了说明,结合大量实例透彻解析了TCP/IP中的实践经验以及法则,还说明了如何避免网络编程中一些最常见的问题。书中提供的框架代码和常用函数库让你能够方便快捷地编写出应用程序,而无需操心一些细枝末节。 PS:该pdf文档没有目录

2013-11-23

vim命令操作大全

本图片包含大量的常用vim使用命令和操作,而且对所使用的命令进行了分类,方便查阅

2013-09-05

DLL例子程序

一个DLL的简单的例子和应用程序!基于控制台的一个例子程序!

2013-06-18

SQL Sever 2000 自学教程

内容简单易懂,而且比较清晰,可以让你对数据库有所了解。全书十六章。

2012-08-19

devcpp教程

一份比较完备的关于DevCpp的使用方法的教程。

2012-02-17

TurboC3.0中文版

支持中文的Turboc编译器,中文的界面有助于初学者的使用和开发,而且也支持程序里中文,不用因程序中的中文变成乱码而担忧。

2012-02-17

DevCpp一款不错的C/C++编译器,而且免费开源

一款不错的C/C++编译器。支持多种语言,适合于初学者和其他开发人员的不同需求。

2012-02-17

空空如也

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

TA关注的人

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