有效的使用功能

现在,我们已经涵盖了什么功能和一些他们的基本能力,让我们仔细看看为什么他们是有用的。
为什么使用功能?
新的程序员经常问:“我们不能把代码里面的代码直接放在里面吗?”“在许多情况下(特别是简单的例子),它可以。然而,函数提供了一些好处,使他们非常有用的非平凡的程序。
组织程序越来越复杂,有所有的代码都生活在main()功能变得越来越复杂。一个函数几乎像一个小程序,我们可以分别从主程序中写,而不必考虑程序的其余部分,而我们写它。这使我们能够将复杂的任务划分为更小的,更简单的,并大大降低了我们的程序的整体复杂性。
可重用性-一旦一个函数被写入,它可以在程序中调用多次。这避免了重复的代码,并最大限度地减少了复制/粘贴错误的概率。功能还可以与其他程序共享,减少必须从头开始编写的代码量(测试)每一次。
测试-因为功能减少代码冗余,有更少的代码来测试在第一位。也因为功能是独立的,一旦我们已经测试了一个功能,以确保它的工作,我们不需要再测试它,除非我们改变它。这减少了代码的数量,我们必须在一次测试,使它更容易找到错误(或避免他们在第一位)。
可扩展性-当我们需要扩展我们的程序来处理它以前没有处理的情况下,函数允许我们在一个地方的变化,并有一个变化,每次调用的函数被调用。
抽象-为了使用一个函数,你只需要知道它的名称,输入,输出,以及它的生活。你不需要知道它是如何工作的,或者它是什么其他的代码依赖于使用它。这是超级有用的,使其他人的代码访问(如在标准库中的一切)。
虽然它看起来并不喜欢它,每次你使用std::cin或std::cout进行输入或输出,你使用一个函数的标准库,符合上述标准的规定。
有效的使用功能
最新的程序员遇到的最大的挑战之一(除了学习语言)是学习什么时候,如何有效地使用功能。这里有一些写函数的基本准则:
在一个程序中出现的代码一次以上的代码通常应该被做成一个函数。例如,如果我们从用户的多个时间读取输入相同的方式,这是一个伟大的候选人的功能。如果我们以同样的方式输出一个东西,这也是一个伟大的候选人的功能。
有一个离散的输入和输出的代码是一个很好的候选人的功能,特别是如果它是复杂的。例如,如果我们有一个我们要排序的项目列表,代码做排序将使一个伟大的功能,即使它只做一次。输入待排序的列表,并输出排序后的列表。
一个函数通常应该执行一个(和一个)任务。
当一个函数变得太长,太复杂,或难以理解,它应该被分成多个子函数。这被称为重构。
通常,学习C++的时候,你会写很多程序,涉及3个任务:
读取用户的输入
从输入计算一个值
打印计算值
繁琐的程序(例如小于20行代码),一些或所有这些可以在main()。然而,对于较长的程序(或只是练习),每一个都是一个很好的候选人的个人功能。
新的程序员经常结合计算一个值,将计算的值打印成一个单一的函数。然而,这违反了“一个任务”的经验法则的功能。计算一个值的函数应该返回给调用方的值,并让调用方决定如何处理所计算的值(如调用另一个函数来打印值)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值