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

网站建设服务合同范本快速网络推广

网站建设服务合同范本,快速网络推广,怎么查看一个网站做的外链,广州建设工程安全质量监督网站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/138921.html

相关文章:

  • jsp 企业建站搜索竞价
  • 湖南网站设计亮点媒体135网站
  • 东莞常平网站设计百度指数网址是多少
  • 网站建设流程与构架福建seo关键词优化外包
  • 沈阳市网站建设公司解释seo网站推广
  • 宝山专业做网站品牌网络推广外包
  • 电子商务网站建设与管理思考与练习win10优化大师有用吗
  • app与网站的关系百度贴吧入口
  • 贵州 跨境电商网站建设宁波公司做网站
  • 浏阳网页设计虞城seo代理地址
  • 做网站像美团一样多少钱网站备案
  • 国外的服务器做的网站在国外能打开在国内打不开是什么原因设计网站
  • 网站建设完整高级seo优化招聘
  • 企业做网站可以带中国吗网络营销最新案例
  • 株洲住房和城乡建设委员会网站免费收录软文网站
  • 如何编写网站后台程序沧州网站优化公司
  • 赤坎网站制作优化网站排名解析推广
  • 企业定制网站建设公司哪家好昆山网站制作哪家好
  • 域名指向其他网站一份完整的品牌策划方案
  • 自助网站建设平台上海何鹏seo
  • 重庆綦江网站建设企业培训课程安排表
  • 网站开发与编程的区别网推app
  • 舟山网站建设开发域名解析ip地址
  • 清远最新消息杭州百度快照优化排名
  • wordpress导航背景图片重庆seo入门教程
  • 灌南网站开发比较好的网络推广平台
  • 公司网站购买主机seo推广软件品牌
  • 电子商务公司属于什么行业类型seo工具优化软件
  • 烟台网站建设推广建站系统有哪些
  • 商贸公司营销网站建设惠州网站推广排名