我是靠谱客的博主 兴奋便当,最近开发中收集的这篇文章主要介绍未定义与 double 类型的输入参数相对应的函数 eval_一起学 C++ Primer(四)函数简介(一)...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

bec7a02fed002152e2ac1af84ed82df1.png

今天,我们来简要了解一下函数。

函数是一组一起执行一个任务的语句。每个C++程序都至少有一个函数,即主函数main() ,所有简单的程序都可以定义其他额外的函数。

C++函数分为两种:有返回值的和没有返回值的。在标准C++库函数中可以找到这两类函数的例子,下面先看一个有返回值的库函数。

标准C++库包含一个名为sqrt()的函数,它返回平方根。假设要计算6.25的平方根,并将这个值赋给变量x,则可以在程序中使用下面的语句:

x 

这句表达式被称为函数调用,被调用的函数叫做被调用函数,保函函数调用的函数叫做调用函数。圆括号中的值(这里是6.25)是发送给函数的信息,以这种方式发送给函数的值叫做参数。函数sqrt()得到的结果为2.5,并将这个值发送个调用函数;发送回去的值叫做函数的返回值。可以这么认为:函数执行完毕后,与剧中的函数调用部分被替换为返回值。简而言之,参数是发送给函数的信息,返回值是从函数中发送回去的值。

429b6455cc39ccf654df5eea47e78387.png

a9c9cf5aeeb0d10c83ed0cd68ba8f3ea.png

在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型。C++提供这种信息的方式是使用函数原型语句。C++程序应当为程序中使用的每个函数提供原型。

sqrt()的函数原型像这样:

double 

第一个double(将在数据类型中介绍)意味着sqrt()将返回一个double值。括号中的double意味着sqrt()需要一个double参数。原型结尾的分号表明它是一条语句,这使得它是一个函数原型而不是函数头。如果省略分号,编译器将把这行代码解释为一个函数头,并要求接着提供定义该函数的函数体。

在程序中使用sqrt()函数时,也必须提供原型。可以使用两种方法来实现:

  • 在源代码文件中输入函数原型;
  • 包含头文件cmath(老系统为math.h),其中定义了原型。

第二种方法更好,因为头文件更有可能使原型正确。对于C++库中的每个函数,都在一个或多个头文件种提供了其原型。请通过手册或在线帮助查看函数描述来确定应使用那个头文件(即查看C++文档:如sqrt() http://www.cplusplus.com/reference/cmath/sqrt/)。

不要混淆函数原型和函数定义。可以看出,原型只描述函数接口。也就是说,它描述的是发送给函数的信息和返回的信息。而定义中包含了函数的代码,如计算平方根的代码。C和C++将库函数的这两项特性(原型和定义)分开了。库文件中包含了函数的编译代码,而头文件中包含了原型。

应在首次使用函数之前提供其原型。通常的做法是把原型放到main()函数定义的前面。

//sqrt.cpp   using the sqrt() function

下面是该程序的运行情况:

Enter the floor area, in square of feet, of your home: 1536
That's the equivalent of a square 39.1918 feet to the side.
How fascinating!

C++允许在程序的任何地方声明新变量,因此 sqrt.cpp 在要使用side是才声明它。C++还允许在创建变量时对它进行赋值,因此也可以这样做:

double 

这个过程叫做初始化。

有些函数需要多项信息,这些函数使用多个参数,参数之间用逗号分开。例如,数学函数pow() 接受两个参数,返回值为以第一个参数为底,第二个参数为指数的幂。该函数的原型如下:

double 

要计算5的8次方,可以这样使用该函数:

answer 

另外一些函数不接受任何参数。例如,有一个C库包含一个rand()函数,该函数不接受任何参数,并返回一个随机整数。该函数原型如下:

int 

关键字void明确指出,该函数不接受任何参数。如果省略void,让括号为空,则C++将其解释为一个不接受任何参数的隐式声明。可以这样使用该函数:

myGuess 

注意,在C++中函数调用中必须包括括号,即使没有参数。

还有一些函数没有返回值。例如,编写了一个函数,它按美元美分格式显示数字。当向它传递参数23.5时,它将在屏幕上显示$23.50 。由于这个函数把值发送给屏幕,而不是调用程序,因此不需要返回值。可以在原型中使用关键字void来指定返回类型,以指出函数没有返回值:

void 

由于它不返回值,因此不能将函数调用放在赋值语句或其他表达式中,应该使用一条纯粹的函数调用语句:

bucks

知识点:

  • 参数
  • 返回值
  • 函数调用
  • 函数原型
  • 经常查查文档

最后

以上就是兴奋便当为你收集整理的未定义与 double 类型的输入参数相对应的函数 eval_一起学 C++ Primer(四)函数简介(一)...的全部内容,希望文章能够帮你解决未定义与 double 类型的输入参数相对应的函数 eval_一起学 C++ Primer(四)函数简介(一)...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部