三.函数高级

三.函数高级

  • 前言
  • 3 函数提高
    • 3.1 函数默认参数
    • 3.2 函数占位参数
  • 3.3 函数重载
    • 3.3.1函数重载概述
    • 3.2.2 函数重载注意事项


前言


本文记录本渣渣依据黑马程序员C++课程视频学习C++笔记

本节记录C++中的函数高级部分


3 函数提高

3.1 函数默认参数

C++中函数当形参列表中当形参时可以有默认值
语法:返回值类型 函数名( 参数 = 默认值){函数主体}

  • 形参第一个有默认值参数后的参数,都必须有默认值
    三.函数高级_第1张图片

  • 如果函数声明有默认参数,函数实现不能有默认值,以免重定义,反之亦然三.函数高级_第2张图片
    错误提示 :错误提示

正确写法:
三.函数高级_第3张图片运行结果:
运行结果

  • 函数默认参数可被实参覆盖
    图示:
    三.函数高级_第4张图片

3.2 函数占位参数

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

  • 语法: 返回值类型 函数名 (数据类型){函数主体}
    简单代码示例:
#include 

using namespace std;			

void Func(int) {
     	
	
	cout << "函数占位参数" << endl;

}

int main() {
     
			
	Func(10);	
	system("pause");
	return 0;
}
  • 占位参数也可以有默认参数
    简单代码示例:
#include 

using namespace std;			

void Func(int = 100) {
     	
	
	cout << "函数占位参数" << endl;

}

int main() {
     
			
	Func(99);	
	system("pause");
	return 0;
}

3.3 函数重载

3.3.1函数重载概述

函数重载即函数同名

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

函数重载条件:

  • 同一作用域下
  • 函数名相同
  • 函数参数类型不同 或 个数不同 或 定义顺序不同
  • 函数返回值和函数参数名不可作为函数重载的条件

简单代码示例:

#include 

using namespace std;			

void Function_Overloading(int value) {
     
	
	cout << "Function_Overloading函数" << endl;

}

void Function_Overloading(double value) {
      //函数参数类型不同

	cout << "第一个Function_Overloading函数重载" <<endl;

}

void Function_Overloading(int valueA, int valueB) {
      //函数参数个数不同

	cout << "第二个Function_Overloading函数重载" << endl;

}

void Function_Overloading(int valueA, double valueB) {
      //函数参数定义顺序不同

	cout << "第三个Function_Overloading函数重载" << endl;

}

void Function_Overloading(double valueA, int valueB) {
      //函数参数定义顺序不同

	cout << "第四个Function_Overloading函数重载" << endl;

}


int main() {
     
			
	Function_Overloading(1);
	Function_Overloading(2.1);
	Function_Overloading(3, 4);
	Function_Overloading(3, 4.0);
	Function_Overloading(3.0, 4);

	system("pause");
	return 0;
}

运行结果:
三.函数高级_第5张图片


3.2.2 函数重载注意事项

  • 引用和常引用作为重载条件时,为参数类型不同
    即当有如下代码:
#include 

using namespace std;			

void Function_Overloading(int& Reference_variableA) {
     //引用作函数重载条件
	
	cout << "引用作函数重载条件:" << Reference_variableA << endl;
}

void Function_Overloading(const int& Reference_variableA) {
     //常引用作函数重载条件

	cout << "常引用作函数重载条件:" << Reference_variableA << endl;
}


int main() {
     
	
	int Value = 100;
	Function_Overloading(Value);	//传入正常变量
	Function_Overloading(10);		//传入常量

	system("pause");
	return 0;
}

运行结果:
三.函数高级_第6张图片

  • 函数重载与函数默认参数
    图示:
    三.函数高级_第7张图片
    错误描述
    这样写将造成函数调用不明确,虽然可以通过添加第二个实参来使语法正确,但这也会产生歧义,我们应避免这样当写法

你可能感兴趣的:(自学C++,C++,c++)