C++-缺省参数

缺省参数

缺省参数也叫默认参数

指的是在函数参数的位置,提前定义一个缺省值(即提前定义一个值),当函数接收到参数时,如果定义缺省值的位置未接收到参数,那么这个位置会自动使用缺省值

通过定义缺省参数的个数可分为以下情况

全缺省

全缺省就是将函数的参数都定义一个缺省值

cpp 复制代码
#include <iostream>
using namespace std;

// 全缺省:所有参数都有默认值
void printInfo(string name = "Unknown", int age = 0, string country = "Earth") {
    cout << "Name: " << name 
         << ", Age: " << age 
         << ", Country: " << country << endl;
}

int main() {
    printInfo();               // 输出:Name: Unknown, Age: 0, Country: Earth
    printInfo("Alice");        // 输出:Name: Alice, Age: 0, Country: Earth
    printInfo("Bob", 25);      // 输出:Name: Bob, Age: 25, Country: Earth
    printInfo("Cathy", 30, "Mars"); // 输出:Name: Cathy, Age: 30, Country: Mars
    return 0;
}

半缺省

半缺省就是将函数的参数只定义部分缺省值

cpp 复制代码
#include <iostream>
using namespace std;

// 半缺省:length 和 width 必须传递,height 可缺省(默认 10)
double calculateVolume(double length, double width, double height = 10) {
    return length * width * height;
}

int main() {
    // 必须至少传递前两个参数
    cout << "Volume 1: " << calculateVolume(2, 3) << endl;        // 2*3*10 = 60
    cout << "Volume 2: " << calculateVolume(2, 3, 5) << endl;     // 2*3*5 = 30
    return 0;
}

缺省值定义规则

从右向左定义

默认参数必须从参数列表的最右侧开始定义,且必须连续向左延伸

不可跳跃:默认参数必须连续设置,不能间隔未设置默认值的参数

相关推荐
a努力。5 分钟前
网易Java面试被问:偏向锁在什么场景下反而降低性能?如何关闭?
java·开发语言·后端·面试·架构·c#
前端达人13 分钟前
CSS终于不再是痛点:2026年这7个特性让你删掉一半JavaScript
开发语言·前端·javascript·css·ecmascript
wjs202415 分钟前
SVG 多边形
开发语言
H_-H16 分钟前
值返回与引用返回(c++)
开发语言·c++
csbysj202017 分钟前
Java 日期时间处理详解
开发语言
我命由我1234527 分钟前
Python Flask 开发 - Flask 快速上手(Flask 最简单的案例、Flask 处理跨域、Flask 基础接口)
服务器·开发语言·后端·python·学习·flask·学习方法
大飞记Python28 分钟前
从零配置Python测试环境:详解路径、依赖与虚拟环境最佳实践
开发语言·python·环境配置·安装目录
zhougl9961 小时前
区分__proto__和prototype
开发语言·javascript·原型模式
weixin_420947641 小时前
php composer update 指定包的分支非tag
开发语言·php·composer
一水鉴天1 小时前
整体设计 定稿 之6 完整设计文档讨论及定稿 之4 整体设计数据库设计规范(含两个版本)
开发语言·人工智能·架构