【C/C++】函数重载注意事项

函数重载概述

函数重载满足条件:

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

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

函数重载注意事项

  • 引用作为重载条件
  • 函数重载碰到函数默认参数
c 复制代码
//函数重载注意事项
//1、引用作为重载条件

void func(int &a)	// int& ref = 10; 不合法
{
	cout << "func (int &a) 调用 " << endl;
}

void func(const int &a)	// 编辑器优化:int temp = 10; const int& a = temp;
{
	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;
}
相关推荐
赖small强6 小时前
【Linux C/C++开发】Linux C/C++ 堆栈溢出:原理、利用与防护深度指南
linux·c语言·c++·stack·堆栈溢出
爱学习的梵高先生6 小时前
C++:基础知识
开发语言·c++·算法
oioihoii6 小时前
C++对象生命周期与析构顺序深度解析
java·开发语言·c++
IMPYLH6 小时前
Lua 的 tonumber 函数
开发语言·笔记·后端·junit·游戏引擎·lua
xlq223226 小时前
24.map set(下)
数据结构·c++·算法
晚风吹长发7 小时前
初步了解Linux中文件描述符-fd
linux·运维·服务器·c++·开发·文件
It's now7 小时前
BeanRegistrar 的企业级应用场景及最佳实践
java·开发语言·spring
赖small强7 小时前
【Linux C/C++开发】Linux C/C++ 高效延迟崩溃分析:基于 mprotect 的内存陷阱技术 (Electric Fence)
linux·c语言·c++·mprotect·buffer overflow
毕设源码-赖学姐7 小时前
【开题答辩全过程】以 基于Java的小区物业管理系统APP的设计与实现为例,包含答辩的问题和答案
java·开发语言
繁华似锦respect7 小时前
C++ & Linux 中 GDB 调试与内存泄漏检测详解
linux·c语言·开发语言·c++·windows·算法