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

C++核心高级编程 --- 3、函数提高

文章目录

    • 第三章:
      • 3.函数提高
        • 3.1 函数默认参数
        • 3.2 函数占位参数
        • 3.3 函数重载
          • 3.3.1 函数重载概述
          • 3.3.2 注意事项

第三章:

3.函数提高

3.1 函数默认参数

语法结构:返回值类型 函数名 (参数 = 默认值){}

#include <iostream>
using namespace std;int func1(int a = 1, int b = 2, int c = 3)
{return a + b + c;
}int func2(int a = 1, int b = 2);int func2(int a , int b)
{return a + b;
}int main()
{int num1 = func1();int num2 = func2();cout << num1 << endl; //6cout << num2 << endl; //3system("pause");return 0;
}

补充:

  1. 如果某位置参数有默认值,那该位置往后,从左向右,都需要有默认值。

  2. 如果函数声明有默认值,函数实现的时候就不能有默认参数。

3.2 函数占位参数

语法结构:返回值类型 函数名

#include <iostream>
using namespace std;void func(int a , int) //占位参数也可有默认参数
{cout << "func函数的调用" << endl;
}int main()
{func(10, 20);     //占位参数必须填补system("pause");return 0;
}
3.3 函数重载
3.3.1 函数重载概述

作用:函数名可相同,提供复用性。

满足条件:

  • 同一作用域下

  • 函数名相同

  • 函数参数类型不同或个数不同或顺序不同

#include <iostream>
using namespace std;void func()
{cout << "func函数的调用" << endl;
}void func(int a)
{cout << "func(int a)函数的调用" << endl;
}void func(int a, double b)
{cout << "func(int a, double b)函数的调用" << endl;
}int main()
{func();            //func函数的调用func(10);        //func(int a)函数的调用func(10, 3.14); //func(int a, double b)函数的调用system("pause");return 0;
}

补充:函数返回值不可作函数重载条件。

3.3.2 注意事项
  • 将引用作为重载条件

  • 函数重载遇到函数默认参数

//将引用作为重载条件
#include <iostream>
using namespace std;void func(int& a)
{cout << "func(int& a)函数的调用" << endl;
}void func(const int& a)
{cout << "func(const int& a)函数的调用" << endl;
}int main()
{int a = 10;func(a);  //func(int& a)函数的调用func(10); //func(const int& a)函数的调用system("pause");return 0;
}
//函数重载遇到函数默认参数
#include <iostream>
using namespace std;void func(int a)
{cout << "func(int a)函数的调用" << endl;
}void func(int a, int b =10)
{cout << "func(int a, int b =10)函数的调用" << endl;
}int main()
{int a = 10;func(10);  //报错,出现二义性。system("pause");return 0;
}
http://www.lryc.cn/news/331118.html

相关文章:

  • 【微服务篇】深入理解分布式消息队列系统
  • 基于k8s的web服务器构建
  • 【名词解释】ImageCaption任务中的CIDEr、n-gram、TF-IDF、BLEU、METEOR、ROUGE 分别是什么?它们是怎样计算的?
  • C++其他语法..
  • 【Vue3源码学习】— CH2.6 effect.ts:详解
  • C语言:文件操作(一)
  • 集中进行一系列处理——函数
  • git diff
  • 新手使用GIT上传本地项目到Github(个人笔记)
  • 结合《人力资源管理系统》的Java基础题
  • PostgreSQL备份还原数据库
  • 实现读写分离与优化查询性能:通过物化视图在MySQL、PostgreSQL和SQL Server中的应用
  • pytest中文使用文档----10skip和xfail标记
  • 【Spring MVC】快速学习使用Spring MVC的注解及三层架构
  • Python(乱学)
  • OpenHarmony实战:轻量级系统之子系统移植概述
  • Neo4j基础知识
  • HTTP/1.1 特性(计算机网络)
  • 每日一题————P5725 【深基4.习8】求三角形
  • 第三题:时间加法
  • 【RAG】内部外挂知识库搭建-本地GPT
  • MySQL——锁
  • C++(12): std::mutex及其高级变种的使用
  • 基于ROS软路由的百元硬件升级方案实现突破千兆宽带
  • OpenHarmony实战开发-分布式关系型数据库
  • 图片标注编辑平台搭建系列教程(6)——fabric渲染原理
  • Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)
  • C语言程序10题
  • 定时器-间歇函数
  • Ajax-XMLHttpRequest基本使用