c++ 函数重载与名称压轧 简述

本文详细介绍了C++中函数重载的概念及其使用条件,包括如何通过改变参数个数、类型或顺序实现函数重载,并解释了为什么仅更改返回类型无法实现重载。此外,还介绍了C++中的名称压轧技术,以及如何使用extern C阻止函数名压轧。

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

函数重载:
只要参数个数不同、参数类型不同、参数顺序不同,同名函数就可以重载。但是,只是返回类型不同是不允许函数重载的。因为调用函数只看参数匹配的。

void func(int a);   //ok
void func(char a);   //ok
void func(char a, int b); //ok
void func(int a,char b);  //ok
char func(int a);  //错误,与第一个函数名冲突

重载技术:
C++用名称压轧技术来改变函数名,区分参数不同的同名函数。名称压轧不是C++标准,移植程序时,可以通过extern C修饰,阻止函数名压轧。
压轧技术是非常简单的过程,一系列代码被附加到函数名上以标记参数类型以及他们出现的次序。
如:

int func(char a);
int func(chara,int b,double c);

在编译器内部分别被表示为:

func_c;
func_cid;

名称压轧是对编程来说是看不到的,在编译过程中完成的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值