当前位置:首页 C++ > 正文

c++函数分类

作者:野牛程序员:2023-08-26 06:23:16 C++阅读 2667

C++中的函数可以根据不同的标准进行分类。以下是一些常见的C++函数分类:

  1. 按返回值类型分类:

    • 无返回值函数(void函数): 这些函数执行一些操作但不返回值,例如执行打印、修改全局变量等。

    • 有返回值函数: 这些函数执行操作并返回一个值,可以是基本数据类型、对象、指针等。

  2. 按参数个数分类:

    • 无参函数: 不带任何参数的函数。

    • 带参函数: 接受一个或多个参数的函数。

  3. 按参数类型分类:

    • 基本数据类型参数: 接受整数、浮点数、字符等基本数据类型作为参数的函数。

    • 对象参数: 接受类对象或自定义类型对象作为参数的函数。

    • 指针参数: 接受指针作为参数的函数。

  4. 按函数调用方式分类:

    • 值传递: 将参数的副本传递给函数,在函数内部修改不影响原始值。

    • 引用传递: 将参数的引用传递给函数,在函数内部修改会影响原始值。

    • 指针传递: 将参数的指针传递给函数,通过指针操作来修改参数值。

  5. 按作用范围分类:

    • 全局函数: 在所有函数外部定义,可以在程序的任何地方调用。

    • 局部函数: 在其他函数内部定义的函数,只能在该函数内部调用。

  6. 按内联函数与普通函数分类:

    • 内联函数: 使用 inline 关键字定义的函数,编译时会在调用点进行代码展开,减少函数调用开销。

    • 普通函数: 通常的函数定义,编译器会生成一份函数代码供调用。

  7. 按模板函数与非模板函数分类:

    • 模板函数: 使用模板机制定义的通用函数,可以根据不同类型进行实例化。

    • 非模板函数: 普通的函数定义,针对特定类型。

这些是一些常见的C++函数分类方式。函数的分类有助于理解其特性、用途和用法。

以下是一个简单的代码示例,涵盖了上述提到的一些函数分类:

#include <iostream>

// 无返回值函数(void函数)
void printMessage() {
    std::cout << "Hello, World!" << std::endl;
}

// 有返回值函数
int add(int a, int b) {
    return a + b;
}

// 引用传递
void modifyValue(int &x) {
    x *= 2;
}

// 指针传递
void modifyValueByPointer(int *x) {
    *x *= 3;
}

// 内联函数
inline double square(double num) {
    return num * num;
}

// 模板函数
template <typename T>
T maxValue(T a, T b) {
    return (a > b) ? a : b;
}

int main() {
    printMessage();

    int num1 = 5, num2 = 7;
    int sum = add(num1, num2);
    std::cout << "Sum: " << sum << std::endl;

    int value = 10;
    modifyValue(value);
    std::cout << "Value after modifyValue: " << value << std::endl;

    modifyValueByPointer(&value);
    std::cout << "Value after modifyValueByPointer: " << value << std::endl;

    double num = 4.0;
    std::cout << "Square of " << num << " is: " << square(num) << std::endl;

    int a = 20, b = 15;
    std::cout << "Max value between " << a << " and " << b << " is: " << maxValue(a, b) << std::endl;

    return 0;
}

这只是一个简单的示例代码,用来演示函数分类的不同方面。在实际编程中,函数的分类和用法会更加多样和复杂。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击