首页 > 其他分享 >函数提高

函数提高

时间:2022-11-07 20:13:25浏览次数:47  
标签:函数 int 提高 占位 参数 重载 默认值

3 函数提高

3.1 函数默认参数

在C++中,函数的形参列表中的形参是可以有默认值的。

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

示例:

int func(int a, int b = 10, int c = 10) {
	return a + b + c;
}

//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值
//2. 如果函数声明有默认值,函数实现的时候就不能有默认参数
int func2(int a = 10, int b = 10);
int func2(int a, int b) {
	return a + b;
}

int main() {

	cout << "ret = " << func(20, 20) << endl;
	cout << "ret = " << func(100) << endl;

	system("pause");

	return 0;
}

3.2 函数占位参数

C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置

语法: 返回值类型 函数名 (数据类型){}

在现阶段函数的占位参数存在意义不大,但是后面的课程中会用到该技术

示例:

//函数占位参数 ,占位参数也可以有默认参数
void func(int a, int) {
	cout << "this is func" << endl;
}

int main() {

	func(10,10); //占位参数必须填补

	system("pause");

	return 0;
}

3.3 函数重载

3.3.1 函数重载概述

作用:函数名可以相同,提高复用性

函数重载满足条件:

  • 同一个作用域下
  • 函数名称相同
  • 函数参数类型不同 或者 个数不同 或者 顺序不同

注意: 函数的返回值不可以作为函数重载的条件

示例:

//函数重载需要函数都在同一个作用域下
void func()
{
	cout << "func 的调用!" << endl;
}
void func(int a)
{
	cout << "func (int a) 的调用!" << endl;
}
void func(double a)
{
	cout << "func (double a)的调用!" << endl;
}
void func(int a ,double b)
{
	cout << "func (int a ,double b) 的调用!" << endl;
}
void func(double a ,int b)
{
	cout << "func (double a ,int b)的调用!" << endl;
}

//函数返回值不可以作为函数重载条件
//int func(double a, int b)
//{
//	cout << "func (double a ,int b)的调用!" << endl;
//}


int main() {

	func();
	func(10);
	func(3.14);
	func(10,3.14);
	func(3.14 , 10);
	
	system("pause");

	return 0;
}

3.3.2 函数重载注意事项

  • 引用作为重载条件
  • 函数重载碰到函数默认参数

示例:

//函数重载注意事项
//1、引用作为重载条件

void func(int &a)
{
	cout << "func (int &a) 调用 " << endl;
}

void func(const int &a)
{
	cout << "func (const int &a) 调用 " << endl;
}


//2、函数重载碰到函数默认参数

void func2(int a, int b = 10)
{
	cout << "func2(int a, int b = 10) 调用" << endl;
}

void func2(int a)
{
	cout << "func2(int a) 调用" << endl;
}

int main() {
	
	int a = 10;
	func(a); //调用无const
	func(10);//调用有const


	//func2(10); //碰到默认参数产生歧义,需要避免

	system("pause");

	return 0;
}

标签:函数,int,提高,占位,参数,重载,默认值
From: https://www.cnblogs.com/xiaoqing-ing/p/16867251.html

相关文章

  • DLL的入口点函数
    一、基本介绍系统在不同的时候调用这个入口点函数,这些调用是通知性质的,用来执行一些与进程或者线程有关的清理工作。如果DLL需要这些通知,则需要在源代码中实现这个入口点......
  • JAVA回调函数简单讲解 CallBack
    回调,其实就是有个回应的那种感觉。那么,接下来,我们就用消息推送的场景,简简单单地讲解下回调函数的使用。直接看代码,先创建一个回调接口,MessageCallBack/***@Author:JCccc......
  • vue项目中定义全局变量、全局函数
    在vue项目中,我们经常会遇到要在多个页面组件中都要使用的一个变量或者函数,比如说需要配置的ip地址,在生产环境和测试环境不一样就需要修改。因此我们可以定义一个全局变量来......
  • web前端开发中获取数据失败回调函数弹出提示的重要性
    前几天下班后跟踪一个系统的投产,测试环境和准生产环境都上了,确定没有问题,但是投产后,系统老是不请求数据渲染页面。先是排查后端那边部署的文件是否齐全,打印日志发现后端的......
  • MySQL_存储过程_和函数
    存储过程和函数:类似于Java中的方法 好处:1提高代码的重用性2简化操作3减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 存储过程含义一组预先......
  • 告诉你应该如何玩转Offset函数,别怕,只需要1分钟就学会啦
    Hi,大家好,有很多的小伙伴在私信提问说一直在说VBA,能否说说Offset函数的使用方法。答案是肯定的,只要有需要就会尽我们的最大努力来满足大家啦!好了话不多说,今天他来了,我们一起......
  • sql中decode函数用法
    decode(字段或字段的运算,值1,值2,值3)      这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 当然值1,值2,值3也可以是表达式,这个函数......
  • SQL 开窗函数求和计算和去重
    前几天的时候需要弄个数据表格。里面需要用计算两个字段出现次数。所以我使用了开窗函数点击查看代码```sqlselectconcat_ws('~',if("${begin_dt}"='',curre......
  • 欧拉函数
    题目:#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;while(n--){intx,res;cin>>x;res=x;for(inti=2;......
  • 实验3 函数应用编程
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidpri......