C++的函数

简介: C++的函数

C++的函数

 

在C++中,函数是执行特定任务的一组语句,可以被重复调用。函数有助于模块化代码,提高可读性和可维护性。以下是C++中函数的一些基本概念:

 

函数定义与声明

 

函数定义包括函数的名称、参数列表和函数体。函数声明只包括函数的名称和参数列表。

 

cpp

 

复制

 

// 函数定义(声明和定义在一起) int add(int a, int b) { return a + b; // 函数体 } // 函数声明(不包含函数体) int add(int a, int b);

 

函数参数

 

值传递:数据从调用函数传到被调用函数。

 

引用传递:传递数据的引用,而不是数据的副本。

 

返回值

 

函数可以返回一个值,返回类型在函数声明中指定。如果没有指定返回类型,则默认返回类型为int。

 

函数调用

 

函数通过函数名调用,可以传递参数。

 

cpp

 

复制

 

int result = add(5, 3); // 调用函数并存储返回值

 

函数原型

 

在C++中,函数原型是函数声明的早期版本,用于编译器进行类型检查。原型不包含函数体。

 

cpp

 

复制

 

void printMessage(); // 函数原型 // 函数定义(在原型之后) void printMessage() { std::cout << "Hello, World!" << std::endl; }

 

默认参数

 

函数可以有默认参数,调用函数时可以不提供这些参数的值。

 

cpp

 

复制

 

int max(int a, int b, int c = 0) { return (a > b) ? (a > c ? a : c) : (b > c ? b : c); }

 

内联函数

 

内联函数是在调用点直接展开的函数,而不是生成单独的函数调用。这可以减少函数调用的开销。

 

cpp

 

复制

 

#define INLINE inline // 对于编译器来说,inline等同于INLINE INLINE int square(int x) { return x * x; }

 

函数重载

 

C++支持函数重载,即可以有多个同名函数,只要它们的参数列表不同。

 

cpp

 

复制

 

void print(int i) { std::cout << "Integer: " << i << std::endl; } void print(double f) { std::cout << "Floating point: " << f << std::endl; }

 

递归函数

 

递归函数是调用自身的函数。

 

cpp

 

复制

 

int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } }

 

函数指针

 

函数指针是存储函数地址的变量,可以用来间接调用函数。

 

cpp

 

复制

 

void printNumber() { std::cout << "Number: " << 42 << std::endl; } int main() { void (*pf)() = printNumber; // 函数指针 pf(); // 通过函数指针调用函数 return 0; }

 

了解函数的基本概念和使用是学习C++的重要部分。通过函数,你可以将代码组织成可重用的块,从而提高代码的模块化和可维护性。

相关文章
|
2月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
2月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
52 6
|
2月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
25 0
C++ 多线程之线程管理函数
|
2月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
31 3
|
2月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
211 1
|
2月前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
35 1
|
2月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
47 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
3月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
25 3
|
4月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
4月前
|
C++
c++常见函数及技巧
C++编程中的一些常见函数和技巧,包括生成随机数的方法、制表技巧、获取数字的个位、十位、百位数的方法、字符串命名技巧、避免代码修改错误的技巧、暂停和等待用户信号的技巧、清屏命令、以及避免编译错误和逻辑错误的建议。
37 6