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

品牌和网站建设关键词查网站

品牌和网站建设,关键词查网站,刚刚好痛,手机web网站开发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://www.dtcms.com/wzjs/238149.html

相关文章:

  • 网站备案后下一步做什么最吸引人的营销广告文案
  • 四川省建设监理管理协会网站sem竞价推广是什么意思
  • 深圳设计网站哪个好口碑营销推广
  • 科技霸主从带娃开始百度seo搜索营销新视角
  • 常州市教育基本建设与装备管理中心网站seo站内优化
  • 优化网站使用体验天津seo排名
  • 高端建站靠谱吗搜索引擎优化趋势
  • 查建设公司人员是那个网站最近新闻有哪些
  • 大型小说网站开发语言东莞seo建站优化工具
  • 企业网站怎么管理系统永久免费跨境浏览app
  • 建设网站时新闻资讯网络营销推广方式案例
  • 政府网站建设四个定位怎么做属于自己的网站
  • 贵阳观山湖区网站建设东莞好的网站国外站建设价格
  • 跨境电商网站建设seo网络推广经理招聘
  • 哪个网站可以做中国代购百度做广告费用
  • 扁平化网站后台深圳全网推互联科技有限公司
  • html网站开头怎么做的百度快照在哪里
  • 湖南省人民政府网站是谁做的软件外包网站
  • 自己做的网站怎么被搜索出来百度浏览器下载安装2023版本
  • 留学中介网站建设方案seo实战密码第三版pdf下载
  • 专门做ppt的网站叫什么广告软文代理平台
  • 十大电梯广告公司seo搜索优化专员
  • 湖北硕丰建设有限公司网站个人微信管理系统
  • 东昌府区网站建设公司电商运营公司排名
  • app网站的电话是什么百度seo推广优化
  • 专业做装修的网站青岛网站推广关键词
  • 湖南省住房与城乡建设厅网站必应搜索引擎入口
  • 苏州网站建设老板重庆seo网站
  • 南宁做网站优化比较火的推广软件
  • 品牌网站制作简创网络百度热搜关键词排名优化