自定义博客皮肤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的专栏

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

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

转载 C++ 对象的内存布局(下)

C++ 对象的内存布局(下)http://blog.csdn.net/haoel 转载于:http://blog.csdn.net/haoel/article/details/3081385 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承

2013-07-22 10:33:53 1560

转载 C++ 对象的内存布局(上)

C++ 对象的内存布局(上)http://blog.csdn.net/haoel转载于:http://blog.csdn.net/haoel/article/details/3081328前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这

2013-07-22 10:30:44 1609

转载 C++ 虚函数表解析

C++ 虚函数表解析http://blog.csdn.net/haoel转载于:http://blog.csdn.net/haoel/article/details/1948051 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种

2013-07-22 10:26:05 1564

原创 Linux Shell 之 制作录制回放功能脚本

不久前在书上看到两个很有趣的命令——script和srciptreplay,它可以把终端会话记录到一个文件中,即是说我们可以通过终端会话来来制作命令行技巧视频教程,也可以与他人分享会话文件,而且生成的文件还只是一般的文本文件,文件的大小非常小,真是非常有意思。下面是本人写的两个shell程序,来方便进行这个有趣并有意义的操作。一、实现代码文件:Record.sh#! /

2013-07-19 10:57:06 4348 2

转载 linux 中特殊符号用法详解

# 井号 (comments)#管理员  $普通用户脚本中#!/bin/bash   #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行

2013-07-17 21:47:14 39337 2

原创 Linux Shell 之 对文件中的行、单词、字符进行迭代

在进行文本文件进行处理时,对文件件中的行、单词、字符进行迭代和遍历是非常常用的操作。而将一个简单的循环用于迭代,再加上来自stdin或文件的重定向,这就是对文件中的行、单词、和字符进行迭代的基本方法。废话不多说,马上来看看怎么样实现吧。1、迭代文中的每一行使用while循环从标准输入中读取,因为要在标准输入中读取,就要对文件进行重定向,使它重定向到stdin中,代码如下

2013-07-16 16:55:20 10166 1

原创 Linux Shell 之 Shell中的函数调用

说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下Shell中函数的调用方法。一、Shell中函数的定义为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西。而Shell中函数的定义有两种方法,如下:functi

2013-07-15 16:16:38 105988

原创 Linux Shell 之 我的第一个Shell程序

这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验。一、Shell是什么在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个词大家一定听过很多了,但是它其实是什么东西呢?其实Shell是一个程序,我们在shell中输入一些命令,它就告诉操作系统内核我们想做什么,好让内核可以控制硬件来正确无误地工作。简单点来说就

2013-07-14 16:42:15 9115 4

原创 初窥Linux 之 区分硬连接和软连接

一、Linux下的两种连接文件及创建方式在Linux下面的连接文件有两种——软连接和硬连接,虽然都是连接文件,但两者却有很大的区别。一种是类似于Windows的快捷方式功能的文件(或目录),这种连接称为软连接;另一种则是通过文件系统的inode连接来产生新文件名,而不是产生新文件,这种称为硬连接。创建连接文件的方法非常简单,就是使用ln命令,ln file1 file2,则创建硬连

2013-07-14 13:52:03 7580

原创 初窥Linux 之 简述软件安装

对于Windows的用户来说,软件安装的确是没有什么学问,一直Next或者改一下路径,软件就会装好了。但是在Linux下可没这么简单了。Linux下的软件安装主要有三种方式,分别是rpm(RedHat系列)或DPKG(Debian系列)、yum(RedHat系列)或APT(Debian系列)和Tarball。由于rpm、yum等的安装方式都非常简单,在这里就不再详述了,就举

2013-07-13 22:21:48 2919

原创 初窥Linux 之 构建你的Linux“任务管理器”

在Windows下,大家肯定有用过任务管理器,特别是我们想看看我们的CPU的使用率、内存还剩下多少,又或者某个程序出现了异常还关闭不了时,大家肯定会使用任务管理器来强制结束这个程序。那么在Linux下有没有这样的工具呢?答案是肯定的,作为一个强大的操作系统,Linux怎么可能没有“任务管理器”呢?我们可以通过一系列的工具和命令来出色地实现我们在Windows中任务管理中所做的一切工作,构建一个Li

2013-07-10 14:42:26 9249 1

转载 C++编译器无法捕捉到的8种错误

C++是一种复杂的编程语言,其中充满了各种微妙的陷阱。在C++中几乎有数不清的方式能把事情搞砸。幸运的是,如今的编译器已经足够智能化了,能够检测出相当多的这类编程陷阱并通过编译错误或编译警告来通知程序员。最终,如果处理得当的话,任何编译器能检查到的错误都不会是什么大问题,因为它们在编译时会被捕捉到,并在程序真正运行前得到解决。最坏的情况下,一个编译器能够捕获到的错误只会造成程序员一些时间上的损失,

2013-07-09 13:40:32 3972

原创 初窥Linux 之 文件权限

一、用户与用户组为了更好地理解文件权限,我们需要先有用户和用户组的概念。因为在Linux里面,任何一个文件都具有“User(用户)、Group(用户组)及Others(其他用户)”3种身份的个别权限。1、用户和文件所有者的概念你用来登陆Linux主机的那个用户名就是一个用户,例如,root就是一个用户,而Linux上存在很多的用户。如果你在Linux上创建了一个文件,那么默认情

2013-07-08 10:14:42 3424 2

原创 初窥Linux 之 数据流重定向

一、什么是数据流重定向在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息。这些信息默认是打印在屏幕上的。那么什么时数据流重定向呢?从字面上理解就是改变数据流的流向,使之流

2013-07-07 12:15:55 13994 6

原创 二叉树常用操作算法集、解释及注意事项

二叉树是一种常用的数据结构,在程序中也经常需要使用二叉树,但是你所使用语言却并不一定提供了二叉树这种数据类型,所以为了方便使用,我们可以自己实现一个二叉树的数据类型。在需要时就像使用其他已定义的类型一样方便。下面给出一些本人写的算法和解释(基于C语言),希望对读者写一个二叉树数据类型有所帮助。0、递归的四条基本法则由于二叉树中的算法大多使用递归来实现,而且使用递归实现也

2013-07-06 11:59:07 9304 9

原创 提高程序运行效率的10个简单方法

对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的书籍也很少。但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单实用的提高程序运行效率的方法,希望对大家有所帮助。注:以C/C++程序为例一、尽量变

2013-07-01 12:06:38 73641 45

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关注的人

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