关于C++“函数“的浅谈

本文围绕C++函数展开,介绍了函数默认参数,即形参可设默认值,且声明和实现不能同时有默认参数;函数占位参数,调用时需填补;还阐述了函数重载,包括满足条件及注意事项,如引用作重载条件、重载遇默认参数可能产生歧义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数的默认参数
在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
}
二、函数占位参数
C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置
语法: 返回值类型 函数名 (数据类型){}
//函数占位参数 ,占位参数也可以有默认参数
void func(int a, int) {
cout << “this is func” << endl;
}
int main() {
func(10,10); //占位参数必须填补
system(“pause”);
return 0;
}
三、函数重载
1、 函数重载概述
作用:函数名可以相同,提高复用性
函数重载满足条件:
1、同一个作用域下
2、函数名称相同
3、函数参数类型不同 或者 个数不同 或者 顺序不同
注意: 函数的返回值不可以作为函数重载的条件
//函数重载需要函数都在同一个作用域下
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;
}
2、 函数重载注意事项
(1)引用作为重载条件
(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;
}

C的虚函数是通过在基类中声明一个虚函数,然后在派生类中对其进行重写来实现的。虚函数的引入对于C大型项目的接口设计和统一标准起到了非常重要的作用。虚函数的另一个重要特性是多态性,它可以实现动态联编,即在运行时确定函数的调用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C++函数与纯虚函数](https://blog.csdn.net/wx_14678/article/details/103844354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [38.【C++函数 纯虚函数 虚基类 (最全详解)】](https://blog.csdn.net/qq_69683957/article/details/126397761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [C++纯虚函数浅谈](https://blog.csdn.net/duwenchao_Tom/article/details/76647380)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值