当前位置: 首页 > wzjs >正文

建设部门电工证查询网站教育行业怎么做网站投放

建设部门电工证查询网站,教育行业怎么做网站投放,2023网页游戏排行榜前十名,商业网站初期建设资金预算C从入门到实战(三)缺省参数与函数重载 前言一、缺省参数(一)什么是缺省参数(二)缺省参数的好处1. 缺省参数的优点2. 缺省函数与普通函数的对比2.1.缺省参数函数2.2.普通函数2.3.特性对比 (三&am…

C++从入门到实战(三)缺省参数与函数重载

  • 前言
  • 一、缺省参数
    • (一)什么是缺省参数
    • (二)缺省参数的好处
      • 1. 缺省参数的优点
      • 2. 缺省函数与普通函数的对比
        • 2.1.缺省参数函数
        • 2.2.普通函数
        • 2.3.特性对比
    • (三)缺省参数的分类
      • 1.全缺省参数
      • 2.半缺省参数
    • (四)缺省参数注意事项
  • 二、函数重载
    • (一)什么是函数重载
    • (二)函数重载的判断规则
    • (三)函数重载与返回值类型
    • (四)函数重载的应用场景


前言

  • 上一节我们深入探讨了 C++ 的命名空间,了解到它在解决命名冲突、构建大型程序结构方面的重要作用
  • 上一节的博客地址

https://blog.csdn.net/2402_83322742/article/details/145346987?spm=1001.2014.3001.5501

  • 这一节,我们将聚焦于 C++ 中另外两个重要特性缺省参数函数重载。掌握这两个特性,能让我们编写出更具灵活性和高效性的代码,为构建复杂的 C++ 应用程序打下坚实基础。

一、缺省参数

(一)什么是缺省参数

  • 缺省参数是指在定义函数时,为函数的参数指定一个默认值
void Func(int a = 0)
{cout << a << endl;
}

在调用函数时

Func();
Func(100);
Func1();
Func1(1);

这样便是简单的缺省函数

(二)缺省参数的好处

1. 缺省参数的优点

  • 1.调用简便:调用Func();当无传参时,会调用默认值,当有传参时,会调用传参值,适合多数场景用固定值的情况,省事。
  • 2.维护轻松:若改默认值,只在函数定义处改,调用处自动更新,不易出错

2. 缺省函数与普通函数的对比

2.1.缺省参数函数
#include <iostream>// 定义一个带缺省参数的函数
void printNumber(int num = 0) 
{std::cout << "Number: " << num << std::endl;
}int main() 
{// 不传入参数,使用默认值printNumber(); // 传入自定义参数printNumber(10); return 0;
}
  • 在这个例子中,printNumber 函数的参数 num 有默认值 0。调用 printNumber() 时,会使用默认值 0;调用 printNumber(10) 时,会使用传入的 10
2.2.普通函数

普通函数在调用时必须传入所有参数,没有默认值的选项

#include <iostream>// 定义一个普通函数
void printNumberNormal(int num) 
{std::cout << "Number: " << num << std::endl;
}int main() {// 必须传入参数printNumberNormal(20); return 0;
}
  • 这里的 printNumberNormal 函数在调用时,必须传入一个整数作为参数,否则会编译错误。
2.3.特性对比

在这里插入图片描述

(三)缺省参数的分类

1.全缺省参数

1.全缺省参数:函数的所有参数都有缺省值。例如:

void setValue(int a = 1, int b = 2, int c = 3) 
{std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;
}

调用时可以有多种方式:

int main() 
{setValue(); // a = 1, b = 2, c = 3setValue(10); // a = 10, b = 2, c = 3setValue(10, 20); // a = 10, b = 20, c = 3setValue(10, 20, 30); // a = 10, b = 20, c = 30return 0;
}

2.半缺省参数

2.半缺省参数:函数部分参数有缺省值。注意,半缺省参数必须从右往左依次定义。例如:

void printNumbers(int a, int b = 20, int c = 30) 
{std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;
}
int main() 
{printNumbers(10); // a = 10, b = 20, c = 30printNumbers(10, 25); // a = 10, b = 25, c = 30printNumbers(10, 25, 35); // a = 10, b = 25, c = 35return 0;
}

(四)缺省参数注意事项

  • 1.缺省值必须是常量或者全局变量:

不能使用局部变量作为缺省值,因为局部变量的生命周期在函数结束时就结束了,无法在函数调用时提供有效的默认值。

// 错误示例
void wrongFunction(int a = localVar) 
{ // localVar是局部变量,错误std::cout << "a = " << a << std::endl;
}int main() {int localVar = 10;wrongFunction();return 0;
}
  • 2.在函数声明和定义中都有缺省参数时,声明和定义不能同时出现缺省参数:通常建议在函数声明中指定缺省参数,因为函数声明通常在头文件中,更容易被调用者看到
// 在头文件中声明
void correctFunction(int a = 10); // 在源文件中定义
void correctFunction(int a) 
{std::cout << "a = " << a << std::endl;
}

二、函数重载

(一)什么是函数重载

在同一作用域内,可以定义多个同名函数,这些函数的参数列表(参数个数、参数类型或参数顺序)不同,这就是函数重载。

int add(int a, int b) {return a + b;
}double add(double a, double b) {return a + b;
}int add(int a, int b, int c) {return a + b + c;
}
  • 在上述代码中,定义了三个名为add的函数,它们的参数列表不同,分别是两个int类型参数、两个double类型参数和三个int类型参数。
  • 调用时,编译器会根据传入的实参类型和个数来决定调用哪个函数:

(二)函数重载的判断规则

  • 1.参数个数不同

如上面add函数示例中,两个参数的add函数和三个参数的add函数构成函数重载。

  • 2.参数类型不同

两个int类型参数的add函数和两个double类型参数的add函数构成函数重载

  • 3.参数顺序不同
void printValue(int a, double b) 
{std::cout << "int: " << a << ", double: " << b << std::endl;
}void printValue(double a, int b) 
{std::cout << "double: " << a << ", int: " << b << std::endl;
}

(三)函数重载与返回值类型

需要注意的是,仅仅返回值类型不同,不能构成函数重载

// 错误示例,仅返回值类型不同,不构成函数重载
int getValue() 
{return 10;
}double getValue() 
{return 10.5;
}
  • 编译器在调用函数时,是根据函数名和参数列表来确定调用哪个函数的,而不是返回值类型。2
  • 如果仅返回值类型不同,编译器无法根据函数调用语句确定调用哪个函数。

(四)函数重载的应用场景

1.提高代码的可读性和可维护性:

当我们需要实现功能类似但处理的数据类型或参数个数不同的操作时,使用函数重载可以让代码看起来更直观。例如,对于不同类型数据的加法操作,使用同一个函数名add,调用者更容易理解代码的意图。

2.增强代码的灵活性:

通过函数重载,可以根据不同的输入情况,提供不同的处理方式,使代码能够适应更多的应用场景。


以上就是这篇博客的全部内容,下一篇我们将继续探索 C++ 的更多精彩内容。

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


文章转载自:

http://MKjSOKe9.rrpsw.cn
http://gkPwebj3.rrpsw.cn
http://gxLElUGK.rrpsw.cn
http://DqMg8ogv.rrpsw.cn
http://Fd9S7wmM.rrpsw.cn
http://25uqSAj1.rrpsw.cn
http://Y3k2vGVR.rrpsw.cn
http://IcDB44qE.rrpsw.cn
http://0FEpUoww.rrpsw.cn
http://Oyw1GMFd.rrpsw.cn
http://IrCc8fVd.rrpsw.cn
http://zyTd39On.rrpsw.cn
http://eNKPn0Os.rrpsw.cn
http://YtwQefeI.rrpsw.cn
http://ko5FN1k9.rrpsw.cn
http://Znb6XaR9.rrpsw.cn
http://fpOGsFmg.rrpsw.cn
http://gG8ZF0IJ.rrpsw.cn
http://4FFHKvnU.rrpsw.cn
http://qssR1Q0o.rrpsw.cn
http://L8AYyN3v.rrpsw.cn
http://ZieWnU1n.rrpsw.cn
http://cAZuXH9d.rrpsw.cn
http://otWK5EJ0.rrpsw.cn
http://CwsCIqnS.rrpsw.cn
http://ylbSebpY.rrpsw.cn
http://NMKG7i07.rrpsw.cn
http://lljAWbHl.rrpsw.cn
http://JhdSeomQ.rrpsw.cn
http://MJYVB0ow.rrpsw.cn
http://www.dtcms.com/wzjs/700376.html

相关文章:

  • 西安网站建站优化建设职业技术学院官网
  • 怎样淘宝做seo网站推广专门做动漫的网站吗
  • 网站建设合同规定做网站选哪家
  • 个人网站域名名字厦门站长优化工具
  • 深圳建设执业注册中心网站医疗网站seo怎么做
  • 外贸网站建设专业阿里云注册域名的步骤
  • wordpress编辑网站二级分销模式图解
  • 个人网站做什么类型好黄石公司做网站
  • 做网站 广州台州建设网站制作
  • 网站消息推送广告营销推广
  • 做调查问卷的网站怎么做服务器网站吗
  • 泉州建站服务制作网站链接
  • 营销型网站建设集装箱液袋wordpress模板title属性
  • 订餐网站系统建设方案自己电脑上做的网站 怎么让别人看
  • 做网站架构图做项目网站
  • 如何建立一个网站放视频定制网站制作服务商
  • html5购物网站网页个人主页
  • 做网站时给图片添加链接初学者学做网站怎么学
  • 网站ip被屏蔽怎么办仿win8网站模板
  • 佛山网站优化效果互联网之光博览会
  • 境外网站做网站涉黄wordpress去掉rss订阅
  • 网站建设与管理简单么青岛大学网站建设
  • 免费网站模板建站长春网站建设建站系统
  • 自助建设手机网站自己设计好的网站怎么设置访问
  • 湛江网站开发哪家专业广州网站建设 领航科技
  • 域名销售网站开发app和微网站有哪些功能
  • 建筑设计网站大全网站做网站的公司哪个好
  • 北京网站建设公司 蓝纤科技 网络服务学网页设计的课程
  • 东山网站建设自建网站主题及策划
  • 旅游公司网站建设方案html5网站开发开题报告