类中的函数(C ++)

时间:2015-01-04 20:09:36

标签: c++

我了解到课堂上的功能必须是书中的“内联” 但是,我不明白为什么...... 那本书还不够 我不是英语母语,所以我很难在Engilsh描述的网页上搜索 我国的网站对像我这样的学生非常封闭 所以请回答我

我想 如果一个函数(不是内联)在一个类中,只要编译器引用该函数,就会重复创建函数的堆栈帧(一些地址,参数等)。 所以这就是为什么课堂上的功能必须是内联的? 抱歉我的英语不好

1 个答案:

答案 0 :(得分:1)

在C ++的定义中,如果成员函数在class内声明,编译器将其理解为inline

请注意inline(包括在 class内声明的函数的隐式函数)只是编译器的提示,可能是可能实际上inline无法在其某些(或全部或全部)呼叫站点上运行。内联始终是编译器可以自由实现的优化,并且通常也可以启用其他优化。

顺便说一句,有些编译器可能内联函数没有标记为inline,甚至可能在编译单元中使用所谓的link-time-optimization(对于g++编译和< / em>链接-flto -O2