函数的概念大家都不陌生,可以说C++程序都是由函数构成的,首先是主函数,然后主函数中调用处理问题所需的另一些函数,而这些函数中又可以调用其他函数,在递归函数中函数甚至可以调用自己。函数间的这种关系和榫卯结构很类似:榫卯结构通过榫头和卯眼来相互固定,而函数间通过参数与返回值相互调用。
假设要编写一个应用程序,让用户输入圆的半径并计算其周长和面积。为此,一种方式是将所有逻辑都放在 main() 中。另一种方式是将该应用程序划分成逻辑块,具体地说是两个逻辑块,它们分别根据半径计算面积和周长,如下面的示例程序所示:
#include
using namespace std;
const double Pi = 3.14159265;
// Function Declarations (Prototypes)
double Area(double radius);
double Circumference(double radius);
int main()
{
cout << "Enter radius: ";
double radius = 0;
cin >> radius;
// Call function "Area"
cout << "Area is: " << Area(radius) << endl;
// Call function "Circumference"
cout << "Circumference is: " << Circumference(radius) << endl;
return 0;
}
// Function definitions (implementations)
double Area(double radius)
{
return Pi * radius * radius;
}
double Circumference(double radius)
{
return 2 * Pi * radius;
}
输出:
Enter radius: 6.5
Area is: 132.732
Circumference is: 40.8407
分析:
这里的 main()(它本身也是一个函数)相当简洁,它将工作委托给 Area() 和 Circumference() 等函数去完成,并在第 16 和 19 行分别调用它们。
该程序演示了使用函数进行编程涉及的如下内容:
• 第 6 和 7 行声明了函数原型,这样在 main() 中使用 Area 和 Circumference 时,编译器知道它们是什么;
• 在 main() 中,第 16 和 19 行调用了函数 Area() 和 Circumference();
• 第 25~28 行定义了函数 Area(),而第 30~33 行定义了函数 Circumference()。
您需要知道的是,通过将计算面积和周长的代码放到不同的函数中,有助于提高可重用性,因为可根据需要重复地调用这些函数。
该文章会更新,欢迎大家批评指正。
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程