Welcome 微信登录

首页 / 软件开发 / C++

C++递增(增量)运算符重载的思考

C++递增(增量)运算符重载的思考

C++递增(增量)运算符重载的思考2008-01-05 PConline 管宁在前面的章节中我们已经接触过递增运算符的重载,那时候我们并没有区分前递增与后递增的差别,在通常情况下我们是分别不出++a与a++的差别的,但的确他们直接是存在明显差别的。先看如下代码:#include <iostream>using namespace std;int main(){int a=0; ++(++a);//正确,(++a)返回的是左值 (a++)++;/...
如何简化临时内存的分配与释放

如何简化临时内存的分配与释放

如何简化临时内存的分配与释放2008-04-04描述:在编制 C++ 程序时,最常遇到的一个令人恼火的问题便是临时资源的分配与释放问题, 由于程序的逻辑关系通常很复杂,引发异常的可能性也很多,为了妥善处理运行时异常, 我们不得不在可能引发异常的任何地方释放已分配成功的临时资源,然后返回, 以保证程序的健壮稳定及系统的清洁,所以程序中可能随处可见delete、free等语句, 显得很繁! 那么有没有办法使得只顾分配、使用临时资源,而不顾其后事如何呢?在Del...
掌握C++ builder的除错艺术(1)

掌握C++ builder的除错艺术(1)

掌握C++ builder的除错艺术(1)2008-04-04第一篇-正确书写代码1.简介2.书写干净的代码3.使用异常及异常处理能力4.使用记录(logging)机制5.结合使用记录机制与类的异常处理机制6.处理您代码外产生的异常7.你的回合8.版权说明简介这篇文章,我将从最基本的开始谈起。但希望可以涉及更广的层面,而不仅仅是为你的程序除错(debug)。你将会看到,我认为除错(debugging)这个字的全部意义,并不只是通过ide的内建机制来运行的。...
掌握C++ builder的除错艺术(2).2

掌握C++ builder的除错艺术(2).2

掌握C++ builder的除错艺术(2).22008-04-04第二篇-近距离观察(2)使用evaluate/modify(求值/修改)最后一种显示变量或代码块的值的途径是evaluate/modify(求值/修改)窗口。这个窗口可以象打开巡视器一样打开,在您要evaluate/modify(求值/修改)的代码行上右击选择"debug|evaluate/modify"就会弹出evaluate/modify(求值/修改)窗口。本窗口用来...
计算机编程的24条法则

计算机编程的24条法则

计算机编程的24条法则2008-04-041、致命的异常终止决不允许2、以这个次序编写:用户手册、说明书、帮助、源代码3、除非你使用Risk Factor Analysis (RFA),否则一个程序将花费双倍你认为开发所需的时间---重复工作4、编码工作量应该不超过开发工作的百分之二十5、测试应该至少占工程的百分之三十6、注释应该至少要占源代码的百分之二十7、一条错误信息应该报告什么发生了,关于这个用户能够作什么,程序下一步要做什么,以及哪一行代码造成了该...
C++的类和类的定义

C++的类和类的定义

C++的类和类的定义2008-04-04在面向对象的程序设计中,有经常接触类、对象等专业名词;到底什么是类、什么是对象呢?在程序又是怎样运用呢?类是面向对象程序设计的核心,它实际是一种新的数据类型,也是实现抽象类型的工具,因为类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的。没有脱离对象的类,也没有不依赖于类的对象。什么是类类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关...
浅谈C++函数的参数

浅谈C++函数的参数

浅谈C++函数的参数2008-04-04函数参数的求值顺序当一个函数带有多个参数时,C++语言没有规定在函数调用时实参的求值顺序。而编译器根据对代码进行优化的需要自行规定对实参的求值顺序。有的编译器规定自左至右,有的编译器规定自右至左,这种对求值顺序的不同规定,对一般参数来讲没有影响。但是,如果实参表达式中带有副作用的运算符时,就有可能产生由于求值顺序不同而造成了二义性。例如:intz = add_int(++x,x+y);,这样,在不同的编译器就有可能生...
TList

TList

TList2008-04-04TList包含对象指针列表。类关系 TObjectTlist用于存储和维护对象列表。TList引入属隆和方法以执行以下操作:(1)在列表中增加或删除对象。(2)在列表中重排对象。(3)在列表中定位和获得对象。(4)在列表中对对象进行排序。属性列表Capacity 标识TList对象维护的指针数组的大小。Count 表明在列表中使用的项的数量。Items 列出对象的引用。List 标识组成Items的指针数组。方法列表~TLis...
匈牙利命名法

匈牙利命名法

匈牙利命名法2008-04-04这个方法可能很多人都听说过,包括我在内的一些人也试图去使用它,可是还是觉得自己的好,但是现在看来这种想法是错误的。再解释解释吧。这些符号可以多个同时使用,顺序是先m_,(这上标记指成员变量)再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。a Arrayb Booleanby Bytec Char //有符号型字符cb Char Byte //无符号型字符(没多大用...
C++语言基础(1)

C++语言基础(1)

C++语言基础(1)2008-04-04入门简介变量 C++数据类型 C++操作符 C++中的函数 main函数 数组 字符串数组 字符串操作函数C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚。读者学完本书并使用C++ Builder一般时间之...
C++语言基础(2)

C++语言基础(2)

C++语言基础(2)2008-04-04if语句if语句用于测试条件并在条件为真时执行一桌或几条语句。说明:if表达式后面不能带分号,否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句。if (x == 10); // Warning! Extra semicolon!DoSomething(x);这里DoSomething()函数总会执行,因为编译器不把它看成在条件为真时执行的第一条语句。由于这个代码完全合法(但无用),所以编译器...
TThread

TThread

TThread2008-04-04TThread是一个抽象类,可以创建几个独立的线程。类关系 TObject在一个多线程的应用程序中创建一个TThread的后子类代表一个线程。每一新子类的TThread对象的实例是一个新的线程。从TThread派生的多线程实例可以构成Delphi的多线程应用程序。当一个应用程序运行时,应用程序就被载入内存准备执行。此时,它成为包含一个或多个线程的进程,每个线程含有数据、代码和系统资源。线程执行应用程序的部分内容,并由系统分...
<< 181 182 183 184 185 186 187 188 189 190 >>