同样是函数,在 C 和 C++ 中有什么区别?
第一个返回值。
C语言的函数可以不写返回值类型,编译器会默认为返回 int。
但是 C++ 的函数,除了构造和析构这两个特殊的函数,必须得写上返回值,即使没有数据返回,也得写 void。
第二个函数名。
C语言的函数名绝对不能重名,除了用上 weak 这样的黑科技。同一个项目中,函数重名就会提示重复定义。
C++因为函数重载的存在,函数名可以相同,只要参数有区别就行。这两个函数构成重载的关系。
第三个函数参数。
C++中的函数参数花样比较多。
比如C++支持占位参数,参数可以只写个类型,但是没有名字,调用函数的时候,必须得给占位参数传参。
C语言原来不支持占位参数,不过就在最新的 C23 里面,也加入了占位参数,使用新一点的编译器,编译也能通过。
除了占位参数,还有默认参数,这个功能比占位参数更实用。
所谓默认参数,就是可以给函数参数提供一个默认值,调用函数的时候,如果没有提供实参,就会使用默认参数。
默认参数真的是个好东西。
第四个,函数模板。
这个概念也是只有C++才有。
对于函数体一样,只有类型不一样的函数,C++引入了模板机制,一个函数,可以用于多个场景。
第五个,函数指针。
C语言和C++都有函数指针的概念,只是 C++ 不仅有函数指针,还有函数对象。
这是两个完全不同的概念,一个是指针,一个是被重载过函数调用运算符的类。
在算法里面,都可以用来指定规则。
相比C语言的函数,C++要复杂很多。还有哪些区别,欢迎大家在评论区交流。
全部0条评论
快来发表一下你的评论吧 !