Welcome 微信登录

首页 / 软件开发 / C++

C++数据类型的属性与限制

C++数据类型的属性与限制

C++数据类型的属性与限制2008-01-05 天极 谢启东在C++中,每一种内置的数据类型都拥有不同的属性,其中包含的信息对设计程序来说是非常重要的,下面来看一下,<limits>库是怎样有助于访问这些信息的。C++中约有10种截然不同的整数类型及超过3种的浮点类型,而每种数据类型都有不同的数值属性,如数值范围、能表示的最大位数、或各自的精度等等,这些属性对金融、科学、图形、数字信号处理等程序来说是极其重要的。本文讨论使用<limits...
深入CSocket编程之阻塞和非阻塞模式

深入CSocket编程之阻塞和非阻塞模式

深入CSocket编程之阻塞和非阻塞模式2010-07-20Starlight本文适合初中级读者阅读有时,花上几个小时阅读、调试、跟踪优秀的源码程序,能够更快地掌握某些技术关键点和精髓。当然,前提是对这些技术大致上有一个了解。我通过几个采用 CSocket 类编写并基于 Client/Server (客户端 / 服务端)的网络聊天和传输文件的程序 ( 详见: 源代码参考 ) ,在调试这些程序的过程中,追踪深入至 CSocket 类核心源码 Sockcore...
C++多态技术的实现和反思

C++多态技术的实现和反思

C++多态技术的实现和反思2008-01-05 程序员杂志 杨喜敏 孟岩面向对象技术最早出现于1960年代的Simula 67系统,并且在1970年代保罗阿托实验室开发的Smalltalk系统中发展成熟。然而对于大部分程序员来说,C++是第一个可用的面向对象程序设计语言。因此,我们关于面向对象的很多概念和思想直接来自于C++。但是,C++在实现面向对象中关键的多态性时,选择了与Smalltalk完全不同的方案。其结果是,尽管在表面上两者都实现了相似的多态性...
C++内存管理详解

C++内存管理详解

C++内存管理详解2008-01-05伟大的Bill Gates 曾经失言:640K ought to be enough for everybody — Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。1、内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内...
保持C/C++程序代码的可伸缩性

保持C/C++程序代码的可伸缩性

保持C/C++程序代码的可伸缩性2008-01-05 天极 谢启东 在今天,已有许多的32位应用程序感到,在32位平台上可用的虚拟内存受到了一定的限制,对程序开发者来说,即使是开始关注64位平台时,也不得不维护软件的32位版本,这就需要一种方法,以使代码的两个版本都保持相当的可伸缩性。 目前的内存剖析工具能帮助确定,当程序达到峰值内存使用量时,都发生了什么,但是这些工具都过于关注已分配的内存块,而不是已提交的虚拟内存地址空间,而这两种衡量标准没有直...
分割窗口后如何限制分割条的移动范围

分割窗口后如何限制分割条的移动范围

分割窗口后如何限制分割条的移动范围2010-07-20刘良敏做一个项目,把一个单文档的窗口分割成左右两列,同时还需要设置左边窗口的最小尺寸。找了很多资料,都是针对对话框或者文档的,试了OnSizing和GetMinMaxInfo,结果对分割窗口无效。后来看到分割窗口的例子有锁定分割条的代码,跟同事讨论了一下,来了灵感。下面是解决办法,其实很简单的,可能以前有人做过吧,不过我在网上没有搜索到,所以把我的做法写出来跟大家分享。一、新建一个类CMySplitte...
浅议C++的垃圾回收方法

浅议C++的垃圾回收方法

浅议C++的垃圾回收方法2008-01-05许多 C 或者 C++ 程序员对垃圾回收嗤之以鼻,认为垃圾回收肯定比自己来管理动态内存要低效,而且在回收的时候一定会让程序停顿在那里,而如果自己控制内存管理的话,分配和释放时间都是稳定的,不会导致程序停顿。最后,很多 C/C++ 程序员坚信在C/C++ 中无法实现垃圾回收机制。这些错误的观点都是由于不了解垃圾回收的算法而臆想出来的。其实垃圾回收机制并不慢,甚至比动态内存分配更高效。因为我们可以只分配不释放,那么分...
强大的Cell5.0图表

强大的Cell5.0图表

强大的Cell5.0图表2010-07-25一.背景国外的图表软件(模块)比较多,大家比较熟悉的主要有:Graph, DeltaGraph, MSGraph, Crystal Report, Origin, First Impression etc. 而国内似乎没有任何市场化的产品。其实,图表需要数据源,而数据的管理需要好的表格处理软件,所以图表做为辅助数据管理的可视化工具,应该是与表格处理紧密结合在一起的,而不是孤立的。其次,好的图表必须具有良好的可操作...
C++箴言:从模板中分离出参数无关的代码

C++箴言:从模板中分离出参数无关的代码

C++箴言:从模板中分离出参数无关的代码2008-01-05 templates(模板)是节省时间和避免代码重复的极好方法。不必再输入20个相似的 classes,每一个包含 15 个 member functions(成员函数),你可以输入一个 class template(类模板),并让编译器实例化出你需要的 20 个 specific classes(特定类)和 300 个函数。(class template(类模板)的 member functio...
利用Visual C++实现QQ消息群发

利用Visual C++实现QQ消息群发

利用Visual C++实现QQ消息群发2010-07-25黄东一、引言QQ一直是国内最令人瞩目的及时通讯软件,近6年的经营使其在IM市场有了"世界第一"名号。在国内市场,QQ的市场占有率已经超过了70%,用户群庞大,本人就是腾讯QQ的一个用户。不知QQ会员是否能够消息群发,但我这个免费用户是享受不了这个服务的,给同事和朋友们发通知好辛苦啊。在网上Google了一下,找到几个小软件,可是消息后面又加个广告尾巴。还是自己动手吧:如果要分析...
C++之父Bjarne谈C++中的STL模板

C++之父Bjarne谈C++中的STL模板

C++之父Bjarne谈C++中的STL模板2008-01-05 天极 陶刚在1994年,我主要关心的是如何使ISO C++标准尽可能地好--同时在它所包含的特性和规范的质量两个方面--并获得多数人的同意。即使人们不接受某种规范,也不会影响它(规范)的良好性。ISO标准没有强制力,因此有些人认为自己不值得浪费时间来适应它,除非(群体)社团的压力能够使他们确信该规范的价值。对于一个实现者来说,适应环境是很重要的额外工作,因此适应环境是一个有意识的决定,并且需...
直接调用类成员函数地址

直接调用类成员函数地址

直接调用类成员函数地址2010-07-25 vckbase 南风一、成员函数指针的用法在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而"->*"和".*"用来调用指针指向的函...
C++之父Bjarne谈C++在2005年

C++之父Bjarne谈C++在2005年

C++之父Bjarne谈C++在2005年2008-01-05 天极 陶刚现在我们仍然很难估计C++程序员的数量,但在2003年,IDC报告说有超过300万的全职C++程序员,这个数据还是比较可信的。虽然我不能够精确地计算,但是我所拥有的所有指标都显示,C++在经过前十年(1985-1994)的爆炸性增长之后,后十年(1995-2004)其使用人数一直在稳定地增长。我还没有经历过其增长停止的时期。我猜想,虽然面对竞争产品的有力宣传和肆无忌惮的促销活动,它仍...
DCT快速变换

DCT快速变换

DCT快速变换2010-07-25陈祖尚一、引言DCT变换是数字图像处理中重要的变换,很多重要的图像算法、图像应用都是基于DCT变换的,如JPEG图像编码方式。对于大尺寸的二维数值矩阵,倘若采用普通的DCT变换来进行,其所花费的时间将是让人难以忍受甚至无法达到实用。而要克服这一难点,DCT变换的快速算法无非是非常吸引人的。就目前而言,DCT变换的快速算法无非有以下两种方式:1.由于FFT算法的普便采用,直接利用FFT来实现DCT变换的快速算法相比来说就相对...
移动存储安全

移动存储安全

移动存储安全2010-07-25 vckbase 吴登荣摘要:实现对移动存储设备的加密,保护信息隐蔽,防止隐私泄露。关键字:移动存储设备加密安全当你的U盘,移动硬盘遗失了,被盗了,或者是遗忘在公共场所,里面的资料就会完全被别人窥探,如果涉及一些隐私,机密,那后果是很严重的。本课题就是在这样一个情况下产生的。这里剖析的只是一个最初的演示原型,详细设计,以及一些细节可以参考源代码。源代码在WinXP,VC6.0编译通过。1、访问注册表读取计算机上的移动存储设备...
C++箴言:类型转换时定义非成员函数

C++箴言:类型转换时定义非成员函数

C++箴言:类型转换时定义非成员函数2008-01-05《C++箴言:声明为非成员函数的时机》阐述了为什么只有 non-member functions(非成员函数)适合于应用到所有 arguments(实参)的 implicit type conversions(隐式类型转换),而且它还作为一个示例使用了一个 Rational class 的 operator* function。我建议你在阅读本文之前先熟悉那个示例,因为本文进行了针对《C++箴言:声明...
GDI+中的圆角矩形

GDI+中的圆角矩形

GDI+中的圆角矩形2010-07-25李昊GDI+是对GDI的一个令人兴奋的扩展,但由于某些原因,它没有提供绘制圆角矩形的函数,虽然我们可以在GDI+中使用GDI中的函数,但这样一来我们没办法在圆角矩形中使用GDI+中的纹理和透明色等新特性。怎么办?GDI+中有一个GraphicsPath 的类,我们可以用它构造各种形状并且可用任何画刷来填充这些形状。本源码中提供了一个可以加到任何工程中的函数,并用它来绘制了一个圆角矩形,矩形的远郊程度可以通过一个滑动条...
<< 51 52 53 54 55 56 57 58 59 60 >>