C++ 函数详解:从声明到调用的实战指南
什么是 C++ 函数?
函数 是 C++ 中独立的代码块,接收输入、处理后返回结果。将重复任务封装为函数,可避免代码重复,并通过不同参数在程序各处复用逻辑。
每个 C++ 程序至少包含一个函数:main()。其余代码可组织为更小、专用的函数,提升可读性和可维护性。
现代 C++ 标准库提供丰富的内置函数,直接调用即可,无需自行实现。
本教程将涵盖:
- C++ 函数的概念
- 函数的必要性
- 标准库内置函数
- 用户自定义函数
- 函数声明与原型
- 函数定义
- 语法结构
- 函数调用
- 参数传递
为什么使用函数?
函数带来多重优势:
- 将相关语句分组,使代码更易读、易懂。
- 消除重复,降低出错几率。
- 支持跨程序甚至跨项目复用,只需调用同一函数。
内置函数
标准库函数预先定义好,直接调用即可,无需提供实现。
示例 1:使用 cmath 中的 sqrt()
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num, squareRoot;
cout << "Enter number: ";
cin >> num;
squareRoot = sqrt(num);
cout << "The square root of " << num << " is: " << squareRoot;
return 0;
}
输出:

程序运行截图:

代码解析:
- 包含
iostream用于输入输出。 - 包含
cmath以使用sqrt()。 - 引入
std命名空间,避免标准名前缀。 - 定义
main()作为程序入口。 - 声明
num和squareRoot为double。 - 提示用户输入数字。
- 读取输入到
num。 - 调用
sqrt()计算平方根。 - 输出结果。
- 返回 0 表示成功。
用户自定义函数
开发者可创建自定义函数,封装特定应用逻辑。
示例 2:简单的问候函数
#include <iostream>
using namespace std;
void sayHello() {
cout << "Hello!";
}
int main() {
sayHello();
return 0;
}
输出:

代码截图:

说明:
- 包含
iostream用于控制台 I/O。 - 引入
std命名空间。 - 定义
sayHello()打印问候语。 - 从
main()调用sayHello()。 - 返回 0 表示正常结束。
函数声明 / 原型
当函数定义在 main() 之后,编译器需提前知晓其签名。原型提供接口信息而无函数体。
原型示例:
int addFunc(int, int);
仅需返回类型、函数名和参数类型;参数名可选。
函数定义
原型告知编译器接口,定义提供可执行函数体。
定义示例:
int addFunc(int num1, int num2) {
return num1 + num2;
}
语法
return_datatype function_name(parameter_list) {
// function body
}
关键组成:
- return_datatype – 返回值类型(无返回用
void)。 - function_name – 标识符,构成函数签名一部分。
- parameter_list – 零个或多个带类型的参数。
- function body – 执行任务的语句块。
调用函数
执行函数需按名称调用并提供所需实参。
调用示例:
int result = addFunc(3, 5);
传递参数
实参必须与形参列表在数量和类型上匹配,否则编译报错。
可指定默认参数值,允许调用者省略这些参数。
示例 3:带原型的两数相加
#include <iostream>
using namespace std;
int addFunc(int, int); // 原型
int main() {
int x, y, sum;
cout << "Enter two numbers: ";
cin >> x >> y;
sum = addFunc(x, y);
cout << "The sum of " << x << " and " << y << " is: " << sum;
return 0;
}
int addFunc(int num1, int num2) {
return num1 + num2;
}
输出:

截图:

说明:
- 包含必要头文件和命名空间。
- 声明
addFunc()原型。 - 从用户读取两个整数。
- 调用
addFunc()并存储结果。 - 显示求和结果。
- 在
main()后定义addFunc(),实现两参数相加逻辑。
总结
- 函数将相关代码封装为可复用块。
- 减少重复,提升代码清晰度。
- 内置库函数通过头文件使用;自定义函数需声明和定义。
- 函数原型在定义前告知编译器接口。
- 实参数量和类型必须匹配;默认参数提供灵活性。
C语言
- 掌握 C++ 函数:从基础到进阶的完整实战指南
- C++ do-while 循环详解:语法、实战示例与嵌套循环
- C++ 指针精通:核心概念、代码示例与实战应用
- C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
- C++ 运算符重载实战指南:语法、方法、限制与代码示例
- C 语言 calloc() 详解:零初始化动态分配原理与实战案例
- C 语言函数详解:定义、声明、调用与参数传递
- C++多态实战指南:虚函数、动态绑定与纯虚函数
- 掌握Verilog函数:高效RTL设计的复用利器
- 精通 Python Lambda 函数:实用示例与最佳实践
- Python round() 函数详解与实战示例
- 精通 Python map() 函数:语法、示例与最佳实践