- 博客(46)
- 资源 (1)
- 收藏
- 关注
转载 深入理解Java多态性
看过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类class A ...{ public String show(D obj)...{ return ("A and D"); } public Str
2014-04-25 10:14:09
921
转载 Catalan数(卡特兰数)
卡特兰数:规定h(0)=1,而h(1)=1,h(2)=2,h(3)=5,h(4)=14,h(5)=42,h(6)=132,h(7)=429,h(8)=1430,h(9)=4862,h(10)=16796,h(11)=58786,h(12)=208012,h(13)=742900,h(14)=2674440,h(15)=9694845·····················通项公式为:
2013-10-10 11:49:47
1054
转载 内核模式与用户模式
用户模式与内核模式从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有运行在ring0层的代码可以直接对物理硬件进行访问。由于WindowsNT是一个支持多平台的操作系统,为了与其他平台兼容,它只利用了CPU的
2013-10-08 00:06:22
1548
转载 Win32调试API原理
在Win32中自带了一些API函数,它们提供了相当于一般调试器的大多数功能,这些函数统称为Win32调试API(Win32 Debug API)。利用这些API可以做到加载一个程序或捆绑到一个正在运行的程序上以供调试;可以获得被调试的程序的底层信息,例如进程ID、进入地址、映像基址等;甚至可以对被调试的程序进行任意的修改,包括进程的内存、线程的运行环境等。简而言之,读者可以用这些API写一
2013-09-30 19:15:32
2048
转载 C语言运算符优先级 详细列表
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .
2013-09-22 16:44:00
804
转载 内存对齐
在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的 “管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解 更加底层的秘密,“内存对齐”对你就不应该再透明了。一、内存对齐的原因大部分的参考资料都是如是说的:1
2013-09-22 16:36:51
831
转载 虚继承与虚基类的本质
虚继承与虚基类的本质 虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然这两个概念的定义是非常的简单明确的,但是在C++语言中虚继承作为一个比较生僻的但是又是绝对必要的组成部份而存在着,并且其行为和模型均表现出和一般的继承体系之间的巨大的差异(包括访问性能上的差异),现在我们就来彻底的从语言、模型、性能和应用等多个方面对虚继承和虚基类进行
2013-09-21 17:25:46
715
原创 关于函数指针的理解(指向的函数返回值又是另外一个函数指针)
比如参数为int 返回int 的函数指针A,写法为typedef typedef int(*A)(int),如果是要定义一个函数指针B,指向一个参数为int而返回值是函数指针A的话,比较容易读懂的写法是 typedef A (*B)(int)如果要把A再展开,typedef int(*A)(int) (*B)(int)这样肯定是错的,因为这里面已经出现了两个变量
2013-09-18 15:56:17
1335
转载 FIFO、LRU、OPT这三种置换算法的缺页次数
考虑下述页面走向: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 当内存块数量分别为3时,试问FIFO、LRU、OPT这三种置换算法的缺页次数各是多少? 答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。 当内存块数量为3时:
2013-09-18 14:09:21
78984
9
转载 判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas
2013-09-10 22:08:14
968
转载 github常见操作和常见错误!
如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote origin already exists. 解决办法如下: 1、先输入$ git remote rm origin 2、再输入$ git r
2013-09-06 22:56:38
12453
转载 Git图文教程详细
Git教程史上最浅显易懂的Git教程!为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程。既然号称史上最浅显易懂的G
2013-09-04 12:48:55
3794
转载 揭示Win32 API拦截细节
原文出处:http://www.codeproject.com/system/hooksys.asp简要介绍拦截win32 API 调用对于多数windows开发人员来说都一直是很有挑战性的课题,我承认,这也是我感兴趣的一个课题。钩子机制就是用一种底层技术控制特定代码段的执行,它同时提供了一种直观的方法,很容易就能改变操作系统的行为,而并不需要涉及到代码。这跟一些第三方产品类似。
2013-09-03 13:28:42
3425
转载 windows下Bat命令学习
一、基础语法:1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。3.批处理的编程能力远不如C语言等编程语言,也十分不规范。4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(pa
2013-09-01 13:25:11
44540
转载 关于初学者上传文件到github的方法
说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午。终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍的是windows下的安装和使用。 【第一步】建立先仓库 第一步的话看一般的提示就知道了,在github新建一个repository(谷歌可以解决),都是可视化的界面操作
2013-08-30 00:49:52
85133
5
转载 windows平台下通过注册表获取特定后缀名的默认图标
Windows操作系统的文件图标是根据文件的类型,或者说文件扩展名读取的。下面是一个采用此方法读取指定类型文件图标和类型描述信息的示例。 介绍下实现方法:例如一个.txt扩展名的文件图标,通过注册表项HKCR/.txt找到该类型为txtfile 再通过HKCR/txtfile得到它的描述信息是“文本文档”(你的操
2013-08-29 20:55:06
7198
1
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2013-08-27 15:18:15
820
转载 C++的四种cast操作符的区
Q::什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double
2013-08-26 10:38:19
957
转载 谈一谈C++抽象类
一、定义.纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔
2013-08-21 13:46:46
837
原创 Qt中foreach详解
今天改Qt代码时突然看到foreach,心血来潮想研究一下。define foreach Q_FOREACH在看这个Q_FOREACH之前,我先贴出一些类、函数和宏名//这是一个空结构体,大概作为一个抽象吧struct QForeachContainerBase {};//QForeachContainer 继承QForeachConta
2013-08-20 22:21:08
13701
转载 Qt中两种定时器用法
在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器;一种是使用QTimer类。定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度。1.QObject类的定时器 QObject是所有Qt对象的基类,它提供了一个基本的定时器。通过QObject::startTimer(),可以把一个一毫秒为单位的时间间隔作为参数来开始定时器,这个函数返回一个唯一的整
2013-07-12 14:19:03
84530
转载 Qt 【信号和槽】官方解释(全英文,不用我翻译吧,我只重点标注一下)
Signals & SlotsSignals and slots are used for communication between objects. The signals and slots mechanism is a central feature of Qt and probably the part that differs most from the featu
2013-07-10 14:00:40
3839
原创 第三方类库C语言运行时链接研究
转自http://blog.youkuaiyun.com/wang37921/article/details/56603171. 无论这些第三方库是静态库还是动态库,或者同时有静态库和动态库(可以同时使用),必须保证在生成这些库时,使用的C Runtime库是同一个版本(/MT, /MTd, /MD,或者/MDd)【如果是VC的话,在项目属性->配置属性->C/C++->Code
2013-07-08 14:37:46
2286
转载 Git 命令参数及用法详解
Git 命令参数及用法详解转载请务必注明原文:http://www.linuxso.com/command/git.htmlgit 命令(gnu interactive tools)功能说明:文字模式下的文件管理员。语 法:git 命令补充说明:git命令是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方
2013-06-29 13:36:41
980
转载 Qt 项目生成的流程例图
转自http://hi.baidu.com/148332727/item/30e58b53e75b60918c12edc7这篇短文假定读者熟悉C\C++项目的基本编译过程。moc.exe和cl.exe由于是针对2个cpp进行编译,即2个编译单元的2次调用,因此为了更清除的表达在上图中各出现了2次。这里用一个例子演示了QT中2个重要的工具程序uic和moc的作用:假设用QDe
2013-06-18 23:16:45
2954
转载 非常详细的Qt PRO文件语法介绍
转载自http://blog.youkuaiyun.com/adriano119/article/details/5878169在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选
2013-06-18 22:31:51
5745
转载 LZW压缩(解压缩)算法详解及源码
转自http://blog.chinaunix.net/uid-23741326-id-3124208.htmlLZW压缩算法是Lempel-Ziv-Welch 3个人共同发明的,简称 LZW 的压缩算法,可以用任何一种语言来实现它.LZW是GIF图片文件的压缩算法,而且zip压缩的思想也是基于LZW实现的,所以LZW对文本文件具有很好的压缩性能。LZW压缩算法的基
2013-05-03 15:29:05
3421
原创 对QT 的信号连接类型的理解
这几天各种纠结于QT信号和槽的机制,对于connect的五个参数的理解,今天有了一点新的认识。下面先贴出一下QT assistance上的描述Qt::AutoConnection(default) If the signal is emitted from a different thread than the receiving object, the signal is q
2013-04-25 12:56:26
3860
转载 printf,wsprintf等格式控制符
http://msdn.microsoft.com/en-us/library/windows/desktop/ms647550(v=vs.85).aspxA format specification has the following form:%[-][#][0][width][.precision]typeEach field is a single charac
2012-09-13 17:36:15
964
转载 函数调用约定,_cdecl,_stdcall
今天又复习了下函数调用约定以及函数名字的修饰约定,这让我们在使用别人的lib和dll中出现的链接错误(无法识别的符号)能更准确的分析。比如:在C++调用一个C语言编写的.lib时,当显示调用dll或声明接口函数时,应加extern "C" { }刚才试了下,如果不用extern “c”的话,用C++方式编译出来的Lib和dll的导出函数都是?add@@YAHHH@Z这种样子的,所以Ge
2012-08-17 14:45:21
949
转载 APC异步过程调用
转自http://blog.youkuaiyun.com/hurtmanzc/article/details/1687000这是MSDN官网详细的介绍:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681951(v=vs.85).aspx APC : asynchronous procdure call 异步过程调用
2012-08-16 15:55:08
1533
转载 VC中两个井号的妙用
转自http://blog.youkuaiyun.com/redleaf1995/article/details/3702270 VC中有个TEXT()宏,执行情况 TEXT("abc") //结果为L"abc"TEXT(xyz) //结果为Lxyz
2012-08-16 14:31:22
928
转载 C runtime library
转自http://hi.baidu.com/b5000/blog/item/b4f9138291e123a10df4d243.html运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。 随
2012-08-14 17:01:10
926
转载 log4cplus
本文出自 “碧海笙箫” 博客,转载请务必保留此出处http://pyhcx.blog.51cto.com/713166/143549根据版本不同,稍有改动一.简介 log4cplus是C++编写的开源的日志系统,功能非常全面.本文介绍如何在Windows+VS2008中使用该日志库。 二.下载 可从网站[url]http://lo
2012-08-14 11:56:26
1411
转载 extern,define,typedef
一、externextern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是 互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.c
2012-06-07 10:50:58
3406
转载 忽略库
最近一直遇到这个问题,到现在还没有完全弄懂,MSDN上说If you link your program from the command line without a compiler option that specifies a C run-time library, the linker will use LIBCMT.LIB. This is different from p
2012-05-31 16:55:43
1356
原创 细节啊
itoa,aoti今天把我整郁闷了,因为用到字符数组和整数(10进制,16进制)之间的转换,程序一直有错,检查了半天才发现itoa有BUG啊。。itoa(int,char ,16)的时候,比如0a4db80e转换的时候变成a4db80e,解决办法是 wsprintf(char,"%08x",int );现在发现整数,byte与char数组之间转换的时候需要特别注意,itoa不是那么好用,所
2012-05-30 15:39:47
535
原创 随笔
dll可以加载资源,lib不可以lib有两种,一种是构建dll的时候生成lib,此为动态lib,另外一种是静态lib(在工程里设置lib即可)DialogBox内部有消息循环,会阻塞,并且他的窗口回调函数返回true时实际上是告诉系统不要再处理默认消息了,返回false是让系统继续处理,如果需要改变返回值或者更多处理用setwindowlong在VS中,当源文件都为CP
2012-05-10 16:49:56
479
转载 深入理解C语言指针的奥秘(上)
转载自http://topic.youkuaiyun.com/u/20070112/09/35186e5a-0d94-4ea6-9b72-c5463cb3d1f3.html指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。
2012-01-06 10:49:44
609
转载 C 结构体中的函数指针与函数
转载自 grdd1. 函数指针 一般的函数指针可以这么定义:int(*func)(int,int); 表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在这样的一个函数:int add2(int x,int y){ return x+y;}那么在实际使用指针func时可以这样实现:func=&add2; /
2012-01-06 10:13:09
726
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人