展会信息港展会大全

C++和C的不同点在于函数重载
来源:互联网   发布日期:2016-01-26 10:29:26   浏览:2186次  

导读:在C语言里,一个指针可以指向一个函数。这个指针也有两个属性,但一个是函数的入口地址,另一个是函数的返值类型。例如下面的程序,它在C语言里是正确的: int time12(int i) { return(i%12); } ...

在C语言里,一个指针可以指向一个函数。这个指针也有两个属性,但一个是函数的入口地址,另一个是函数的返值类型。例如下面的程序,它在C语言里是正确的:

int time12(int i)

{ return(i%12);

}

int main()

{ int(*fp)()=time12;

intt=fp(13);

return0;

}

主函数的第一句是一条定义语句。我们应从等号左边的标识符读起,等号左边出现的除了标识符以外都是类型的符号,读的顺序却要按照这个符号作为运算符时的运算级别来读。此句读作:fp是一个指针、它指向函数(注意,C语言允许其参数类型不写出)、这个函数的返值是int、这个指针被初始化为函数 time12的入口地址。

然而,上述程序在C++里,第一条语句却被认为是有错误的。C++是强类型检查语言,这与C++的函数重载机制有关。C++要求必须指出函数的所有形式参数的类型。下列程序才是正确的C++程序:

int time12(int i)

{ return(i%12);

}

int main()

{ int(*fp)(int)=time12;

intt=fp(13);

return0;

}

赞助本站

人工智能实验室

相关热词: 函数重载 C++

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港