C++高级面试题目:什么是 C++ 中的默认参数(Default Arguments)

什么是 C++ 中的默认参数(Default Arguments)

在 C++ 中,函数的默认参数(Default Arguments)是在函数声明中给参数指定的一些默认值。当调用函数时,如果没有为这些参数提供值,编译器会使用默认值来初始化它们。

以下是一个示例,展示了如何使用默认参数:

#include <iostream>

// 带有默认参数的函数
void greet(std::string name = "Guest") {
    std::cout << "Hello, " << name << "!" << std::endl;
}

int main() {
    // 调用函数时不提供参数
    greet();  // 输出:Hello, Guest!

    // 调用函数时提供参数
    greet("Alice");  // 输出:Hello, Alice!

    return 0;
}

在这个示例中,greet 函数有一个默认参数 name,默认值为 “Guest”。当函数被调用时,如果没有提供参数,则会使用默认参数的值。如果提供了参数,则会使用提供的参数值。

默认参数的优点在于它使得函数调用更简洁,可以减少代码中的重复。但要注意,函数声明中只能在最右边的参数上使用默认参数,不能在函数声明的中间位置使用。
一个函数模板的示例,其中一个参数设置了默认参数:

#include <iostream>

// 函数模板,接受两个参数,其中第二个参数有默认值
template<typename T>
void printSize(const T& container, int width = 10) {
    std::cout << "Container size: " << container.size() << std::endl;
    std::cout << "Width: " << width << std::endl;
}

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    std::string str = "Hello";

    // 使用默认的宽度值调用函数模板
    std::cout << "Using default width:" << std::endl;
    printSize(vec);  // 传入 vec,width 默认为 10
    printSize(str);  // 传入 str,width 默认为 10

    // 使用自定义的宽度值调用函数模板
    std::cout << "\nUsing custom width:" << std::endl;
    printSize(vec, 15);  // 传入 vec,width 设置为 15
    printSize(str, 20);  // 传入 str,width 设置为 20

    return 0;
}

在这个示例中,printSize 是一个函数模板,接受一个容器类型的参数 container 和一个整数类型的参数 width(带有默认值 10)。在 main() 函数中,我们首先使用默认的宽度值调用了 printSize 函数模板,然后使用自定义的宽度值再次调用了它。

相关推荐

  1. C++:默认参数静态

    2024-03-10 18:58:02       47 阅读
  2. C++函数默认参数(缺省参数

    2024-03-10 18:58:02       55 阅读
  3. C++默认参数

    2024-03-10 18:58:02       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 18:58:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 18:58:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 18:58:02       87 阅读
  4. Python语言-面向对象

    2024-03-10 18:58:02       96 阅读

热门阅读

  1. json-server 快速搭建本地服务器

    2024-03-10 18:58:02       52 阅读
  2. LeetCode111 二叉树的最小深度

    2024-03-10 18:58:02       48 阅读
  3. flask流式响应

    2024-03-10 18:58:02       48 阅读
  4. Flask从入门到精通

    2024-03-10 18:58:02       34 阅读
  5. Python Flask 打包成exe 心得体会

    2024-03-10 18:58:02       42 阅读
  6. 5.49 BCC工具之rdmaucma.py解读

    2024-03-10 18:58:02       42 阅读
  7. 蓝桥杯刷题--python-20-多路归并,贡献法

    2024-03-10 18:58:02       38 阅读
  8. uniapp ui库 px 转 rpx

    2024-03-10 18:58:02       43 阅读
  9. PostgreSQL常用命令汇总

    2024-03-10 18:58:02       40 阅读
  10. CSS实现块级元素水平垂直居中的3种常用方式

    2024-03-10 18:58:02       42 阅读
  11. 调用GPL 开源库的法律问题

    2024-03-10 18:58:02       39 阅读