自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

转载 C++泛型编程:源起、实现与意义

泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象,这样的事情;熟悉一些其它面向对象的语言的人应该知道,如Java里面这是通过在List里面存放Object引用来实现的。Java的单根继承在这里起到了关键的作用。然而单根继承对C++这样的处

2012-05-02 21:08:49 1239

转载 STL & GP

STL和GP,GP和OOP 正如前面所提到的,在STL的背后蕴含着泛型化程序设计(GP)的思想,在这种思想里,大部分基本算法被抽象,被泛化,独立于与之对应的数据结构,用于以相同或相近的方式处理各种不同情形。这一思想和面向对象的程序设计思想(OOP)不尽相同,因为,在OOP中更注重的是对数据的抽象,即所谓抽象数据类型(Abstract Data Type),而算法则通常被附属于数据类型之中。几乎所有

2012-04-07 13:51:34 739

原创 关于空指针调用类成员能否通过的问题

因为被头问起,前阵子研究了下关于空类指针的调用是否会报错的问题。详细的情况是这样。空指针调用类成员,有几种情况,普通函数一旦访问类成员,则一定会抛出异常。这是绝大多数的情况。但如果函数没有访问任何类成员,这个函数调用就会成功。(估计这样的函数也不太多-_-)  静态成员函数基本等同于全局函数,所以也可以通过。而对虚函数的调用则不论是否访问类成员都会导致异常的抛出,因为虚函数要访问虚表指针。

2011-01-26 02:41:00 1448

原创 ini与xml之比较

xml确实是有很多的优点,某种程度上来说也确实可以完全取代ini,但也并非如有些人鼓吹的处处都比ini强。个人对这两种格式的优缺点做了一个总结。 xml,对于描述复杂的数据结构非常的方便,缺点相对ini使用麻烦一点。在表达较短的配置时,没有ini简练。而且因为它有比较严格的格式审查机制,容错性也不是特别好,在手写时容易出现错误。抛开配置的功能,作为存储传输数据的手段,xml还有个缺点就是它的处理和存储的效率非常低下,解析速度慢,占用更多的存储空间。 ini,通常用于对软件的参数进行配置和记录。优点是使用方便

2011-01-25 23:22:00 13137

原创 流运算符重载,方便读写文件中的数值数据

template static ofstream& operator { os.write((char*)&out,sizeof(out)); return os;}template static ifstream& operator >> ( ifstream& is, T & in ){ is.read((char*)&in,sizeof(in)); return is;}

2010-12-29 01:30:00 1199

原创 windows消息不是发往“窗口”的

在很多的编程书籍里面往往把windows消息归于窗口,当然,这样这样讲一般也不会造成什么麻烦,对新手来说这样认识也足够了,但严格来说是不对的。的确windows消息处理很多时候都是与窗口相关的,编程中经常处理的鼠标,键盘,菜单命令等消息基本都是与图形界面相关的,自然离不开窗口。而且常用的消息处理函数如SendMessage()与PostMessage()函数的参数也是以窗口句柄作为发送的目标。这就更加容易让人感觉消息队列等windows消息机制是属于窗口所有的。其实只要看到PostThreadMessage

2010-11-09 16:32:00 1658 1

转载 3D 游戏为什么选择OpenGL

对于3d 图形程序员,看到了这个标题,可能想到了硝烟弥漫的API大战… 首先声明,这篇文章并不参战,当然也不希望任何人利用本文的观点作为API战争的佐证,本文是要客观的阐述OpenGL 足以实现现代游戏的3d图形表现需要,而不是要贬低其它的API,比如Direct3D,当然本文的读者也不仅限于3d 图形程序员,也可以作为项目制作人选择什么API的一个参考。 如题所言,使用OpenGL制做3D游

2010-02-26 16:20:00 3393

原创 for循环中i++与++i的效率探究

for(int i=0;i 我们经常会使用这样的代码来做循环,一般在for循环中习惯于使用i++,却很少使用++i。虽然从代码执行的效果来看,它们并无任何区别,但是它们所生成的代码是有有所不同的。 i++  :先引用后增加++i  :先增加后引用 意思就是说就是 i++  :先在i所在的表达式中使用i的当前值,后让i加1++i  :让i先加1,然后在i所在的

2009-11-21 23:50:00 21650 4

转载 C++编译器性能比较

C++编译器性能比较 作者:佚名 发布日期:2008-11-19    现在市面上,主流的C/C++编译器包括M$的CL、gcc、Intel的icl、PGI的pgcc及Codegear的bcc(原来属于Borland公司)。Windows上使用最多的自然是cl,而在更广阔的平台上,gcc则是C/C++编译器的首选。但要提到能力优化,排名就未必与它们的市场占有率一致了。  今天一时兴起,便做

2009-01-09 21:59:00 1785

转载 关于存储过程的优缺点

存储过程的使用,好像一直是一个争论。       我不倾向于尽可能使用存储过程,是这么认为的:       1.   运行速度:   大多数高级的数据库系统都有statement   cache的,所以编译sql的花费没什么影响。但是执行存储过程要比直接执行sql花费更多(检查权限等),所以对于很简单的sql,存储过程没有什么优势。       2.   网络负荷:如果在存储过程中没有多次数据交互

2009-01-09 21:56:00 3618 1

转载 三种主要嵌入式数据库

什么是嵌入式数据库嵌入式数据库与非嵌入式数据库的差别,在于运行模式的差别。并不是运行在嵌入式手持设备上的数据库就是嵌入式数据库,那种数据库我们通常称做嵌入式移动数据库。理论上讲,嵌入式设备一样可以运行网络数据库的服务端程序。嵌入式数据库是指运行在本机上、不用启动服务端的轻型数据库,它与应用程序紧密集成,被应用程序所启动,并伴随应用程序的退出而终止。从这个意义上讲,似乎所有单机数据库都可

2009-01-04 18:39:00 13625

原创 虚函数什么情况下会内联

最近有个朋友研究了一下虚函数内联的问题,我也对这个问题产生了兴趣,发现网上也有好多讨论这个问题的,众说纷纭,于是花了点时间研究了一下。自己在vc下做了一些实验,通过观察各种情况下汇编代码,以及了一些资料的记载得出以下结论:虚函数是可以内联的据我所知有3种情况会内联展开:1.“虚函数静态调用”,像这样pclass->class::vf()或者在类体内调用class::vf() //相当于

2008-12-25 19:14:00 5855 1

转载 Visual C++ 8.0对象布局的奥秘:虚函数、多继承、虚拟继承

Visual C++ 8.0对象布局的奥秘:虚函数、多继承、虚拟继承 哈哈,从M$ Visual C++ Team的Andy Rich那里又偷学到一招:VC8的隐含编译项/d1reportSingleClassLayout和/d1reportAllClassLayout 。看个复杂的例子吧(如下),现在假设我们想知道Derived类的对象布局,怎么办? 在Project Properties->C

2008-12-07 23:11:00 812

U盘启动制作工具(支持大U盘,带dos dm ghost8.3 pqMagic等工具)

因为装系统需要,网上的又找不到好用的,自己修改的,本着共享的原则发到网上来,希望大家喜欢。 优点 1.支持大容量u盘 2.干净清爽,做成启动盘后只在u盘增加一个boot目录 3.可以正常使用dm,解决了dm与u盘冲突的问题

2010-01-15

空空如也

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

TA关注的人

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