10 2009 档案
对象析构谈—— delete this 的使用及注意事项
摘要:In order to understand "delete this" :First Step - dive into "delete p"delete p 执行了哪些步骤?delete p 是一个两步的过程:调用析构函数,然后释放内存。delete p产生的代码看上去是这样的(假设是Object*类型的):delete原语可以看作如下这样一个过程:p->~Object();p->operator delete(p);p->~Object() 语句调用p指向的Object对象的析构函数。p->operator delete(p) 阅读全文
posted @ 2009-10-30 11:12 maxweii 阅读(538) 评论(0) 推荐(0)
MFC解惑
摘要:在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用程序的基石。1封装特性:构成MFC框架的是MFC类库而MFC类库又是C++的一个类库。这些类封装WIN32应用程序编程接口,OLE(Object Link Embed 对象链接嵌入)特性,ODBC和DA 阅读全文
posted @ 2009-10-30 09:11 maxweii 阅读(283) 评论(0) 推荐(0)
MFC中的ClassWizard的使用
摘要:前面我们利用AppWizard创建了一个应用程序框架,它除了显示一个Windows的多文档界面以外,目前还没有任何实际的用处,我们必须为它添加实际的功能。事实上,大多数Visual C++程序员都是在这个应用程序框架的基础上从事添加各种功能模块的工作,包括设计自己的类,编写具有一定功能的成员函数。Visual C++的集成开发环境向用户提供了一个功能很强的操作类的工具—ClassWizard,我们可以利用该工具非常方便地向应用程序中添加类、向类中添加消息处理函数、成员函数、以及添加成员变量等。利用ClassWizard,我们再也不用手工编写那些繁琐的代码,只需使用简单的鼠标和键盘操作就能够完成 阅读全文
posted @ 2009-10-29 14:49 maxweii 阅读(541) 评论(0) 推荐(0)
快速学习的一些方法
摘要:总结一个人快速学习可以从下面思路着手: 1、打一个框架 所有事情总有它相关知识的构架,从总体上认识这个事物比象苍蝇一样乱窜好,最好规划了,一步步去执行、寻找,你会发现事情会容易的多。 2、找到重点 重中之重,乃事之本。把重点的抓住,事情就不一样了。 3、学习渠道 向老人学习。经验是宝贵的,可以让你少走弯路。 网络是最好的老师,有事没事,百度一下。你会发现百度是何等的可爱。 书籍会更多的惊喜。一般来说网络能给你很多建议,但是系统的知识总是存在于书本之中,你要对事物有个系统全面的了解,建议去卓越当当上查询相关书籍,买回来看了之后你会有很多收获的。 4、不断记录、总结 看书有很多方式,当时做笔记写总 阅读全文
posted @ 2009-10-27 20:35 maxweii 阅读(182) 评论(0) 推荐(0)
pv操作
摘要:在计算机操作系统中,PV操作是进程管理中的难点。P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的increment。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。 阅读全文
posted @ 2009-10-27 14:13 maxweii 阅读(598) 评论(0) 推荐(0)
windows下句柄的继续讨论(2)
摘要:句柄从来就不是只有Windows SDK才有的,也不是$MS发明的专利,在其他的Doors SDK,Chairs SDK,Beds SDK中都大量存在。但是,只有我们可爱的国内的windows和$MS崇拜者们给它起了一个可爱的名字“句柄”。一个令无数初学者魂牵梦绕,欲仙欲死的名字。我敢保证,一个用MFC编程了N久的人也不一定能说出句柄到底是个啥东东。 好吧,现在大家都学软件工程,设计模式风靡一时,可惜所有的模式都是基于C#的,或是基于java的,要么最多装高深来个C++的。如果后退十年,大家学个基于C的设计模式,“句柄”这么个翻译估计就要笑死人了。 ok,我们可爱的微软在他的sdk中布满了各种 阅读全文
posted @ 2009-10-27 10:03 maxweii 阅读(214) 评论(0) 推荐(0)
C++/C宏定义中## 连接符与# 符的含义
摘要:## 连接符与# 符   ## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#连接符是把传递过来的参数当成字符串进行替代。下面来看看它们是怎样工作的。这是MSDN上的一个例子。  假设程序中已经定义了这样一个带参数的宏:#define paster( n ) printf( "token" #n " = %d", token##n )  同时又定义了一个整形变量:int 阅读全文
posted @ 2009-10-27 09:34 maxweii 阅读(303) 评论(0) 推荐(0)
C++中虚析构函数的作用
摘要:我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {} virtual ~ClxBase() { cout" 基类析构函数始终会被调用的"endl;} virtual void DoSomething() { cout "Do something in class ClxBase!" endl; }};class ClxDerived : public ClxBase{public: ClxDerived() {} ~Cl 阅读全文
posted @ 2009-10-27 08:42 maxweii 阅读(207) 评论(0) 推荐(0)
十二项自我管理能力
摘要:作为“现代戏剧之父”的易卜生曾经告诫后人:你的最大责任就是把你这块材料铸造成器。每个人经理人,甚至包括那些资质平平的经理人,都应该学会自我管理,学会把自己造就成一个成功的经理人。   本人曾任几家著名大中型企业的高层管理者,又作为多年职业培训师,在长期的企业管理实践以及经理人培训经历中发现,我国企业很多经理人实际上缺乏自我管理能力。经理人要想有所作为,就必须重视提升自我管理能力!   经理人要想成功就必须注重以下十二项自我管理能力的提升!   1.自我心态管理能力   在我们不断塑造自我的过程中,影响最大的莫过于是选择积极的态度还是消极的态度。自我心态管理是个人为要达到人生目标进行心态 阅读全文
posted @ 2009-10-26 18:43 maxweii 阅读(598) 评论(0) 推荐(0)
学习mfc的一些方法
摘要:"MFC 微软基础类  MFC,微软基础类(Microsoft Foundation Classes),同VCL类似,是一种Application Framework,随微软Visual C++ 开发工具发布。目前最新版本为9.0(截止2008年11月)。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。  MFC 应用程序的总体结构通常由 由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。MFC 提供了MFC AppWizard 自动生成框架。  Windows 应用程序中,MFC 的主包含文件为""A 阅读全文
posted @ 2009-10-26 16:18 maxweii 阅读(299) 评论(0) 推荐(0)
一个生成和解析XML的c++程序
摘要:首先运用到了tinyxml,在TinyXML中,根据XML的各种元素来定义了一些类:TiXmlBase:整个TinyXML模型的基类。TiXmlAttribute:对应于XML中的元素的属性。TiXmlNode:对应于DOM结构中的节点。TiXmlComment:对应于XML中的注释TiXmlDeclaration:对应于XML中的申明部分,即?versiong="1.0"?。TiXmlDocument:对应于XML的整个文档。TiXmlElement:对应于XML的元素。TiXmlText:对应于XML的文字部分TiXmlUnknown:对应于XML的未知部分。TiXmlHandler: 阅读全文
posted @ 2009-10-23 13:25 maxweii 阅读(2547) 评论(0) 推荐(0)
如何提高情商,提高情商的8种方法
摘要:我们无法预定智商,却可以提高情商,一个杰出的人未必有着高智商,却一定有着高情商。提高情商其实有着简而易行的方法,你需要的就是坚持。 1、学会划定恰当的心理界限,这对每个人都有好处。 你也许自认为与他人界限不明是一件好事,这样一来大家能随心所欲地相处,而且相互之间也不用激烈地讨价还价。这听起来似乎有点道理,但它的不利之处在于,别人经常伤害了你的感情而你却不自知。 其实仔细观察周遭你不难发现,界限能力差的人易于患上病态恐惧症,他们不会与与侵犯者对抗,而更愿意向第三者倾诉。如果我们是那个侵犯了别人心理界限的人,发现事实的真相后,我们会感觉自己是个冷血的大笨蛋。同时我们也会感到受伤害,因为我们既为自己 阅读全文
posted @ 2009-10-23 08:23 maxweii 阅读(411) 评论(0) 推荐(0)
如何开发oracle存储过程
摘要:在我的上一个银行项目中,我接到编写ORACLE存储过程的任务,我是程序员,脑袋里只有一些如何使用CALLABLE接口调用存储过程的经验,一时不知如何下手,我查阅了一些资料,通过实践发现编写ORACLE存储过程是非常不容易的工作,即使上路以后,调试和验证非常麻烦。存储过程(stored procedure)是一组为了完成特定功能的sql 语句集,经编译后存储在数据库SQL存储过程执行起来比SQL命令文本快得多。当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。   调用存储过程,可以认为是一个三层结构。这使你的程序易于维护。如果程序需要做某些改动,你只要改动存储过程即可 阅读全文
posted @ 2009-10-22 15:58 maxweii 阅读(260) 评论(0) 推荐(0)
编写批处理
摘要:批处理的介绍 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规 范的。批处理的 阅读全文
posted @ 2009-10-22 13:41 maxweii 阅读(191) 评论(0) 推荐(0)
java 中的堆和栈
摘要:Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量(这是java中引用的定义)。 引用变量就 阅读全文
posted @ 2009-10-22 09:57 maxweii 阅读(243) 评论(0) 推荐(0)
用VC++6.0实现SNMP协议的方法
摘要:用VC++6.0实现SNMP协议的方法SNMP(Simple Network Management Protocol)是简单网络管理协议,主要用来管理网络设备,正因为“简单”,所以其发展很快,到目前为止几乎所有的网络产品都要为其提供支持,以方便管理员的管理和软件开发人员的开发。  在这里我们不对有关SNMP的概念和基础知之作过多地阐述,一且假定你对其工作原理有了一定的了解,而仅缺的是如何去实现他。  我们所阐述的是基于VC6.0下的SNMP编程。详细介绍一下有关SNMP编程的过程及API函数的用法,在遇到难于理解的部分,我会以较大的篇幅作以解释。言归正传,进入我们的主题。  首先来阐述几个重要 阅读全文
posted @ 2009-10-21 15:59 maxweii 阅读(483) 评论(0) 推荐(0)
Visual C++中对象的序列化与文件I/O研究
摘要:持久性和序列化   持久性是对象所有的保存和加载其状态数据的能力。具有这种能力的对象能够在应用程序结束之前以某种方式将当前的对象状态数据记录下来,当程序再次运行时,通过对这些数据的读取而恢复到上一次任务结束时的状态。由于绝大多数的MFC类是直接或间接由MFC的CObject类派生出来的,因此这些MFC类都具有保存和加载对象状态的能力,是具有持久性的。在使用应用程序向导生成文档/视结构的程序框架时,就已经为应用程序提供了用于对象状态数据保存和加载的基本代码。  为实现对象的持久性,通常多以字节流的形式将记录对象状态的数据存放到磁盘上,这种将状态数据保存到磁盘和从磁盘恢复到内存的过程称为序列化。序 阅读全文
posted @ 2009-10-20 11:35 maxweii 阅读(231) 评论(0) 推荐(0)
c++对象切割
摘要:当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会)对象切割会发生什么呢?#include iostreamusing namespace std;class CShape{public: CShape () { m_color=0; } ~CShape(){} virtual void draw() { cout"This is a shape!"endl; coutm_colorendl; } double m_color; };class CRect: public CShape{public: CRect() { 阅读全文
posted @ 2009-10-20 10:19 maxweii 阅读(554) 评论(0) 推荐(0)
最简单多线程程序
摘要://#include "StdAfx.h"#include windows.h //使用多线程必须的 #include iostream //这是观看效果用的using namespace std;DWORD WINAPI MTOne(LPVOID param); DWORD WINAPI MTTwo(LPVOID param); DWORD WINAPI MTOne(LPVOID param){ while(true) { Sleep(1000); cout"12 "endl; } //一旦返回,这个线程就结束了。 return 0;} DWORD WINAPI MTTwo( 阅读全文
posted @ 2009-10-19 15:20 maxweii 阅读(262) 评论(0) 推荐(0)
VC编写DLL
摘要:1.用VC建立一个WIN32 DLL我们利用VC编写DLL有几种方法.如果用VC建立一个WIN32 DLL 工程.那这个工程就应该只导出C++的类或全局变量.和全局函数.方法就是在CPP文件中编写你的代码,为每个需要导出的元素进行导出办法是增加如下语句:_declspec(dllexport)你当然可以把它定义成宏例如,如果是一个类STUDENT需要导出, 那么声明时应该是这样写 class _declspec(dllexport) student;当然也可以定义时直接导出.我们的客户端,也就是我们调用该函数的客户程序,就需要导入这个类或者函数..填写如下语句:class _declspec( 阅读全文
posted @ 2009-10-19 10:37 maxweii 阅读(293) 评论(0) 推荐(0)
视图及相关操作
摘要:视图的含义  从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。  视图是一个虚拟表,其内容由查询定义。视图是存储在数据字典里的一条select语句(视图的本质).同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对 阅读全文
posted @ 2009-10-17 20:57 maxweii 阅读(280) 评论(0) 推荐(0)
PL/SQL单行函数和组函数详解
摘要:PL/SQL单行函数和组函数详解  函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:    单行函数 组函数   SQL中的单行函数  SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。SELECT ename,TO_CHAR(hiredate,'day,DD-M 阅读全文
posted @ 2009-10-17 20:47 maxweii 阅读(396) 评论(0) 推荐(0)
JDBC编程
摘要:1.解决乱码的问题:%@page contentType="text/html;charset=GBK2312"%%request.setCharacterEncoding="GBK";%2.JDBC编程步骤: 必须捕获异常try...catch...finally,加注释 (1)load the driver: a. class.forName()|class.forName().newlnstance()|new DriverName() b.实例化时自动向driverManager注册 例如,Class.forName("oracle.jdbc.driver.OracleDriv 阅读全文
posted @ 2009-10-17 20:43 maxweii 阅读(172) 评论(0) 推荐(0)
JSP内置对象属性及方法大全
摘要:1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。序号 方 法 说 明 1 object A getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 3 String setCharacterEncoding() 设置字符编码方式4 int getContentLength() 返回 阅读全文
posted @ 2009-10-17 18:53 maxweii 阅读(433) 评论(0) 推荐(0)
NET 框架类库(上)
摘要:NET 框架类库是一个由 Microsoft .NET 框架 SDK 中包含的类、接口和值类型组成的库。该库提供对系统功能的访问,并且被设计为 .NET 框架应用程序、组件和控件的生成基础。文档约定用法异常线程安全命名空间.NET 框架类库提供下列命名空间: Microsoft.CSharp 包含支持用 C# 语言进行编译和代码生成的类。 Microsoft.JScript 包含支持用 Jscript 语言进行编译和代码生成的 JScript 运行库和类。 Microsoft.VisualBasic 包含 Visual Basic .NET 运行库。此运行库与 Visual Basic .NE 阅读全文
posted @ 2009-10-17 17:25 maxweii 阅读(219) 评论(0) 推荐(0)
内联函数
摘要:在类声明的内部声明或定义的成员函数叫做内联(INLINE)函数.  有两种实现方式:  1.在类声明的内部声明,而在类声明外部定义叫做显式内联函数,如:  class display  {   int t;  public:  void output(void)  }  display object;  inline void display::output(void)  {  cout "i is " i "\n";  }  2.在类声明的内部定义,叫做隐式内联函数,如:  class display  {   int t;  public:  inline void out 阅读全文
posted @ 2009-10-16 19:19 maxweii 阅读(232) 评论(0) 推荐(0)
学习C++和编程的50个观点
摘要:下面的是学C++时要注意的。绝对经典。!! 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++ 阅读全文
posted @ 2009-10-16 19:13 maxweii 阅读(139) 评论(0) 推荐(0)
extern “C"作用
摘要:1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用)cpp文件调用c文件中函数如下: c文件中有一函数: void Transfer(int a; char b); cpp文件中必须用extern "C"声明该函数如下才可以实行调用: extern "C" void Transfer(int a; char b);2、在cpp文件中实现的函数,c文件若要调用,就必须在cpp文件中用extern "C"来声明该函数,否则cpp在编译过程中就会对其进行名字改编,c文件就找不到该函数的原型。(这是作用) 阅读全文
posted @ 2009-10-16 16:16 maxweii 阅读(186) 评论(0) 推荐(0)
JAVA环境变量设置
摘要:举例子说明一切。JAVA_HOME: C:\j2sdk1.4.2_13Path: C:\j2sdk1.4.2_13\bin;Classpath:.;JAVA_HOME\lib\tools.jar ; JAVA_HOME\lib\dt.jar;.;C:\j2sdk1.4.2_13\lib\tools.jar;C:\j2sdk1.4.2_1\lib\dt.jar; 阅读全文
posted @ 2009-10-16 10:26 maxweii 阅读(167) 评论(0) 推荐(0)
__cdecl __fastcall与 __stdcall
摘要:__cdecl (C Declaration缩写)__fastcall与 __stdcall (Standard Call缩写)调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall(被调者弹参,)调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈, 即自身清除。2、_cdecl (调用者弹参)是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的 阅读全文
posted @ 2009-10-16 08:21 maxweii 阅读(177) 评论(0) 推荐(0)
想用英语吵架吗?
摘要:在语言方面常常有着这样的规律,很多人在学会一门语言之前,先学会了它的“精髓”(粗俗的话语),不管这正确与否,尝试一下,或许等你能够流畅的用英语骂人的时候,你的口语也得到了很大的提高了。1. Stop complaining! 别发牢骚!2. You make me sick! 你真让我恶心!3. What’s wrong with you? 你怎么回事?4. You shouldn’t have done that! 你真不应该那样做!5. You’re a jerk! 你是个废物/混球!6. Don’t talk to me like that! 别那样和我说话!7. Who do you 阅读全文
posted @ 2009-10-13 16:40 maxweii 阅读(196) 评论(0) 推荐(0)
VC下利用Pro*C开发Oracle接口
摘要:在Visual C++下开发Oracle库接口主要有两种方法。一种方法是利用Visual C++提供的多种数据库访问技术,如开放数据库连接ODBC、熟据存取对象DAO、对象连接和嵌入数据库OLE DB和ActiveX数据对象ADO等。另一种方法是在Visual C++中嵌入SQL语句,这就是所指的Pro*C/C++(本文简称PROC)。前一种方法由于有MFC 强大的类库支持,熟悉VC编程时则实现方便,且可移植性强;但是,与PROC 相比,应用程序需要经过两层才能和数据库通信接口建立联系,编程相对复杂,执行效率相对较低。PROC支持嵌入式PL/SQL 块等直接调用Oracle 库,将过程化语言和 阅读全文
posted @ 2009-10-12 18:14 maxweii 阅读(263) 评论(0) 推荐(0)
程序员谈如何掌握计算机专业英语
摘要:干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难。这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理解和消化。首先编程本身就依赖于英语,虽然现在技术的发展,可以使得某些开发工具在变量名和字段名中支持中文,但还未发现能够完全使用中文的编程语句。其次,软件开发中的技术文档和资料大都是来自英文,即使有翻译好的,不是晦涩难懂,就是译法混乱,比如:roll back就有"回滚"、"回退"、"返回"、"重算"等多种译法,又如我们遇到翻译后的术语"域",往往不清楚译者是根据"field"、"region"还是 阅读全文
posted @ 2009-10-12 15:28 maxweii 阅读(184) 评论(0) 推荐(0)
c++中临时对象
摘要:* 今天看了c++发明人的the c++ programming language(special edition)关于临时对象的说明,虽然是一小节,但感觉c++的书籍,论内容还是这本最权威,里面很多东西都直接确定的表达了出来,权威、确定而令人信服。临时对象的生存时限在这本书中只花了不长的篇章,但说的很清楚,临时对象的生存时限 限制在其出现的“完整”的表达式中,“完整”的表达式结束了,临时对象也就销毁了。例外是把临时对象被引用或者初始化给具名对象,临时对象的生存周期会加长到引用或者具名对象的生存周期。底下的简短程序测试了临时对象的生存时限,vs2005很好的说明了临时对象在其“完整”表达式结束 阅读全文
posted @ 2009-10-10 08:52 maxweii 阅读(307) 评论(0) 推荐(0)
内存对齐问题
摘要:首先由一个程序引入话题:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1//环境:vc6+windowssp22//程序13#includeiostream45usingnamespacestd;67structst18{9chara;10intb;11shortc;12};1314structst215{16shortc;17chara;18intb;19};2021intmain()22{23cout"sizeof(st1)is" 阅读全文
posted @ 2009-10-10 08:47 maxweii 阅读(249) 评论(0) 推荐(0)
STL六大组件简介
摘要:1、容器(Containers):各种数据结构,如Vector,List,Deque,Set,Map,用来存放数据,STL容器是一种Class Template,就体积而言,这一部分很像冰山载海面的比率。2、算法(Algorithms):各种常用算法如Sort,Search,Copy,Erase,从实现的角度来看,STL算法是一种Function Templates。3、迭代器(Iterators):扮演容器与算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其它衍生变化,从实现的角度来看,迭代器是一种将:Operators*,Operator-,Operator++,Operato 阅读全文
posted @ 2009-10-09 10:06 maxweii 阅读(2398) 评论(0) 推荐(0)
前置++为什么比后置++效率高
摘要:前置++:type operator++(); 后置++:const type operator++(int ); 为了编译器区分前置和后置++,C++规定后缀形式有一个int类型参数 ,当函数被调用时,编译器传递一个0做为int参数的值给该函数。不这样规定,无法区分,因为都仅以自身对象为入参。 下面是一个简单的例子:class CInt { private : int m_value; //} ;CInt & CInt:: operator ++ ( ) // 前置的是没有参数的,并且返回引用 { this - m_value += 1 ; return * this ;}const CI 阅读全文
posted @ 2009-10-09 10:00 maxweii 阅读(428) 评论(0) 推荐(0)