c++类内定义的函数为什么可以递归?

c++刷题时一般所有的函数都会包含在Solution类内,其中写到dfs算法的时候也经常会用到递归。之前没有在意。

但是刚刚了解到(c++primer 223页中间部分)“编译器隐式的将在类内定义的成员函数当做内联函数”。那么solution类内写的函数不算是类内定义吗?为什么可以递归呢?


#C/C++##学习路径#
全部评论
内联是个建议
5 回复
分享
发布于 2020-05-30 14:02
好问题,可能是这些在线OJ的编译器不会自动将类内的函数视为内联函数吧?按理来说内联函数一般要求不能递归、不能包含复杂控制语句,一般在5句一下(小规模)……这些刷题的时候基本都不符合呀
1 回复
分享
发布于 2020-05-30 10:52
阅文集团
校招火热招聘中
官网直投
如果内联函数里出现了递归,好像编译器是不会把这个函数优化成内联函数的
1 回复
分享
发布于 2020-05-30 11:03
内联函数是一个对编译器的建议,如果函数过于复杂,编译器会不接受你的建议而将函数处理成普通的函数
1 回复
分享
发布于 2020-05-30 20:31
只是个建议,编译器会决定是否实现成inline
点赞 回复
分享
发布于 2020-05-30 22:41

相关推荐

1 1 评论
分享
牛客网
牛客企业服务