RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
c语言重载函数声明 c语言可以重载函数吗

编写一个C++重载函数

#include iostream

创新互联主营镇赉网站建设的网络公司,主营网站建设方案,app软件定制开发,镇赉h5重庆小程序开发公司搭建,镇赉网站营销推广欢迎镇赉等地区企业咨询

using namespace std;

class fun_overload{//定义一个重载函数类

public:

void display(int int_num ){//输出整型方法

cout"int: "int_numendl;

}

void display(char cha_num ){//输出字符方法

cout"char: "cha_numendl;

}

void display( double dou_num ){//输出双精度型方法

cout"double: "dou_numendl;

}

void display( float flo_num){//输出浮点型方法

cout"float: "flo_numendl;

}

void display(short sho_num ){//输出短整型方法

cout"short: "sho_numendl;

}

fun_overload(){};//构造

~fun_overload(){};//析构

};

int main()

{

fun_overload *f=0;

int a=1;

char b='a';

double c=1.1;

float d=1.110f;

short e=1;

//指针调用fun_overlaod类里的不同类型的函数

f-display(a );

f-display(b );

f-display(c );

f-display(d );

f-display(e );

getchar();

system("cls");

return 0;

}

什么是C++重载?

C++重载是C语言中的一种函数表现方式,即重载函数。

重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。

也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题,不能只有函数返回值类型不同。

扩展资料:

C++运算符重载的相关规定如下:

1、不能改变运算符的优先级。

2、不能改变运算符的结合型。

3、默认参数不能和重载的运算符一起使用。

4、不能改变运算符的操作数的个数。

5、不能创建新的运算符,只有已有运算符可以被重载。

6、运算符作用于C++内部提供的数据类型时,原来含义保持不变。

参考资料来源:百度百科:重载函数

C语言可不可以重载?

1.从C语言的语法设计来说是不支持的,早期的C编译器未考虑过函数重载这一功能,所以就会有那么多类似的函数abs,labs,fabs等等(每种类型都要考虑一个不同的函数名)。\x0d\x0a2.C语言标准就规定不允许同一作用域中两个函数重名。和C语言相关的域有两种,一个是给编译器看得,还有一种是给链接器看的,而给编译器看的这种域主要是关于\x0d\x0a变量的可见范围,而链接器看到的那个是叫文件域,而全局域可能要跨越好几个文件域,这样只要两个同名函数用static修饰,并且在不同的文件中,就不会\x0d\x0a冲突。不过这个实际上已经超越了编译器的范围,表面看起来两个函数同名,但是实际上编译器为链接器产生是指向的同一个函数地址。 \x0d\x0a3.函数重载是一个编译期行为,主要是通过name mangling来产生不同的汇编符号,让linker可以正确的link代码。\x0d\x0a4.但是,C语言作为一个具有超强功能的底层语言,是有办法进行模拟函数重载的。那就是函数指针。最简单的例子就是qsort函数。这个函数可以传递一个函数指针变量,通过不同的函数指针,可以对不同的数据类型就行相同的qsort操作,从某种层面来说相当于函数重载。

c语言中,既然不支持函数重载,那么printf算怎么回事?在c语言中,它不就是被重载了吗?

这个问题问的不错。

其实printf不是重载,c语言不支持函数重载 这句话是对的。

printf函数是通过变长参数表实现的。你可以查看一下printf的函数原型声明。

printf函数的实现在不同的机器上是不同的,但提供的接口是一致的。

printf函数的正确声明形式如下:

int printf(const *fmt,...)

其中省略号表示参数表中参数的数量和类型是可变的。它是变长参数表的固定形式。

省略号只能出现在参数表的尾部。

具体的话你还是上网查查吧,我对这个原型也没研究。

我想既然你能问这个问题,看点资料不难理解,很快能明白怎么回事。明白了以后,你就可以自己写出这样变长参数表的函数了。好好加油!


网站标题:c语言重载函数声明 c语言可以重载函数吗
本文地址:http://lswzjz.com/article/hhjeid.html