..


赞助商链接

在C重载new和delete运算符+ +

通过写文章达米亚诺Verda
第1 2

其中 C + +语言的独特功能比其他的编程语言,当然我们确定了扩大,除了函数或类方法的机理还使用重载运算符的可能性。

概括地说,把“超载 ,一般来说,一个区分具有相同名称(通常做一个相似但不完全相同)的数量和提供的参数的类型为基础的功能机制。
例如,我定义了两个打印功能,一个通用的(无参数),打印了一系列预定的信息,另一个在其中用户可以通过设置参数指定适当的,哪些信息感兴趣的是因此,要打印的。

打印功能,因此,在这种情况下重新定义,以适应不同的信息由用户输入提供。 同样,C + +允许你重新定义运营商:我们的数学运算符认为“+”,“ - ”,“*”和“/”。 它可以是有趣和实用,例如,重新定义“+”操作​​符应用,如果不是数字,而是字符串(字母数字字符集)。 在后一种情况下,“总结”对应的字符串的连接,例如,如果字符串为“Hello”和b在字符串“世界”,操作

 



字符串C = A + B

 
导致字符串C,其值是“Hello world”的创作。

'S 超载,特别是运算符重载在C + + ,仍在治疗中的一篇文章,这是我们作进一步调查参考。

我们现在提出要考虑,但是,具体怎么同样的机制可以扩展到其它类型的运营商,如何有用,特别是参考了new和 delete操作符,对内存的管理。

内存管理

新和 delete操作符是非常有用的内存管理,特别是储备和分配(或分配)的一个新的对象(新)和自由(或释放),以供将来使用(删除)内存所需的内存

一个非常有趣的是C + +,它区别于C时,它是的和删除的存在允许,例如关于新的,计算每个对象所需的空间自动(当命令相当于C,malloc的,需要程序员来指定什么是对象的大小来分配)。

在这一点上很自然地想知道可能是一个重载机制作用因为的和删除的实力仅仅是一个伟大的普遍使用,它似乎没有必要作出新的定义,考虑到一些案件。 一个经营者的价格是如此的普通,但是,正如经常发生, 在控制一定的不足。 例如,它是不可能的,采用的运 ​​营商默认版本,只需检查是否有必要在分配内存(内存?已分配是否正确?)的问题。 为了克服这个问题可以求助于“超载。

所以,现在我们将讨论一个简单的例子,一个的经营者超载的情况下,强调考虑给予和程序是有效的,即使你想删除超载运营

在同一类...
电子学习
Linux操作系统(课程) Linux操作系统(课程)
完整指南开源系统。 从49€。
刻录CD和DVD(电子书) 刻录CD和DVD(电子书)
指南免费节目刻录CD和DVD。 只需25€。
Ruby和Ruby on Rails的(课程) Ruby和Ruby on Rails的(课程)
创建Ruby和RoR的软件和Web应用程序。 从39€。
赞助商链接