소스 검색

上传文件至 '函数提高'

Creamo 2 년 전
부모
커밋
d4586d899c

+ 50 - 0
函数提高/1、函数默认参数.cpp

@@ -0,0 +1,50 @@
+//函数默认参数
+//在C++中,函数的形参列表中的形参是可以有默认值的。
+//语法 : 返回值类型  函数名  (参数 = 默认值) {}
+
+
+#if(0)
+
+#include <iostream>
+
+
+//如果我们自己传入数据,就用自己的数据,如果没有,那么就用默认值
+//语法 : 返回值类型  函数名  (形参 = 默认值)
+int func(int a, int b = 20, int c = 30)
+{
+	return a + b + c;
+}
+
+
+
+
+//注意事项
+//1、如果某个位置已经有了默认参数,那么从这个位置往后,从左到右必须都有默认值;
+//int func2(int a, int b = 10, int c, int d)
+//{
+//	return a + b + c;
+//}
+
+//2、如果函数的声明有了默认,那么函数的实现就不能有默认参数
+//声明和实现只能有一个有默认参数
+int func2(int a , int b );
+
+int func2(int a = 10, int b = 10)
+{
+	return a + b;
+}
+
+
+
+int main()
+{
+	std::cout << func(10) << std::endl;
+
+	std::cout << func2(10, 10) << std::endl;
+
+	system("pause");
+
+	return 0;
+}
+
+#endif

+ 33 - 0
函数提高/2、函数占位参数.cpp

@@ -0,0 +1,33 @@
+//函数占位参数
+// 
+//C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置
+
+//语法 : 返回值类型  函数名  (数据类型) {}
+
+//目前阶段的占位参数还用不到
+//占位参数还可以有默认参数
+
+#if(0)
+
+#include <iostream>
+
+void func(int a , int = 10)    //第二个int起到了占位作用
+{
+
+	std::cout << "This is func" << std::endl;
+
+}
+
+int main()
+{
+
+	func(10);
+
+
+	system("pause");
+
+	return 0;
+
+}
+
+#endif

+ 68 - 0
函数提高/3、函数重载的概述.cpp

@@ -0,0 +1,68 @@
+//函数重载
+//函数重载概述
+
+//作用 : 函数名可以相同,提高复用性
+
+//函数重载满足条件
+//⚪同一个作用域下
+//⚪函数名相同
+//⚪函数参数类型不用  或者  个数不用  或者  顺序不同
+
+//注意 : 函数的返回值不可以作为函数重载的条件
+
+#if(0)
+
+#include <iostream>
+
+void func()
+{
+	std::cout << "func的调用" << std::endl;
+
+}
+
+void func(int a )
+{
+	std::cout << "func(int a )的调用" << std::endl;
+
+}
+
+void func(double a)
+{
+	std::cout << "func (double a) 的调用" << std::endl;
+}
+
+void func(int a, double b)
+{
+	std::cout << "func (int a, double b) 的调用" << std::endl;
+}
+
+
+void func(double a, int b)
+{
+	std::cout << "func (double a, int b) 的调用" << std::endl;
+}
+
+int func(double a, int b)
+{
+	std::cout << "func (double a, int b) 的调用" << std::endl;
+}
+
+//注意事项
+//函数的返回值不可以作为函数重载的条件
+
+int main()
+{
+	
+	//func();
+	//func(10);
+	//func(3.14);
+	//func(10, 3.14);
+	func(3.14, 10);
+
+
+	system("pause");
+
+	return 0;
+}
+
+#endif

+ 51 - 0
函数提高/4、函数重载的注意事项.cpp

@@ -0,0 +1,51 @@
+//函数重载的注意事项
+
+//⚪引用作为重载条件
+
+//⚪函数重载碰到函数作为默认参数
+
+#include <iostream>
+
+//1、引用作为重载条件
+
+void func(int &a)   //int &a = 10;  不合法
+{
+	std::cout << "func(int &a)的 调用" << std::endl;
+
+}
+
+void func(const int& a)  //const int &a = 10;   加const后编译器帮我们优化  加入临时变量  合法
+{
+	std::cout << "func(const int &a)的 调用" << std::endl;
+
+}
+
+//2、函数重载碰到默认参数
+void func2(int a, int b = 10)
+{
+	std::cout << "func2(int a, int b) 的调用" << std::endl;
+
+}
+
+void func2(int a)
+{
+	std::cout << "func2(int a) 的调用" << std::endl;
+
+}
+
+int main()
+{
+
+	//int a = 10;
+	//func(a);   //调用的是没有const的函数,a 是一个变量(可读可写),加const限制为只读状态
+
+	//func(10);
+
+	//func2(10);  //当函数重载碰到默认参数,出现二义性,报错,尽量避免这种情况
+
+	func2(10, 20);
+
+	system("pause");
+
+	return 0;
+}