同样是函数,在C和C++中有什么区别

描述

同样是函数,在 C 和 C++ 中有什么区别?

第一个返回值。

C语言的函数可以不写返回值类型,编译器会默认为返回 int。

但是 C++ 的函数,除了构造和析构这两个特殊的函数,必须得写上返回值,即使没有数据返回,也得写 void。

第二个函数名。

C语言的函数名绝对不能重名,除了用上 weak 这样的黑科技。同一个项目中,函数重名就会提示重复定义。

C++因为函数重载的存在,函数名可以相同,只要参数有区别就行。这两个函数构成重载的关系。

第三个函数参数。

C++中的函数参数花样比较多。

比如C++支持占位参数,参数可以只写个类型,但是没有名字,调用函数的时候,必须得给占位参数传参。

C语言原来不支持占位参数,不过就在最新的 C23 里面,也加入了占位参数,使用新一点的编译器,编译也能通过。

除了占位参数,还有默认参数,这个功能比占位参数更实用。

所谓默认参数,就是可以给函数参数提供一个默认值,调用函数的时候,如果没有提供实参,就会使用默认参数。

默认参数真的是个好东西。

第四个,函数模板。

这个概念也是只有C++才有。

对于函数体一样,只有类型不一样的函数,C++引入了模板机制,一个函数,可以用于多个场景。

第五个,函数指针。

C语言和C++都有函数指针的概念,只是 C++ 不仅有函数指针,还有函数对象。

这是两个完全不同的概念,一个是指针,一个是被重载过函数调用运算符的类。

在算法里面,都可以用来指定规则。

相比C语言的函数,C++要复杂很多。还有哪些区别,欢迎大家在评论区交流。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分