我对C++比较陌生。我遇到了两种声明成员函数的方式,即在类内和在类外定义。我搜索了一下它们之间的区别,发现在类内定义的函数被视为内联函数。
之前我读过有关内联函数的资料,指出内联只是请求编译器用函数体替换函数调用。但如果函数很复杂(如递归、包含静态变量、switch等),则编译器会忽略该请求。因此,即使我们在类内部声明函数,如果它很复杂,则编译器会忽略该请求。那么,如果我们可以让编译器自动为我们执行此操作,为什么还要在类外定义函数呢?
之前我读过有关内联函数的资料,指出内联只是请求编译器用函数体替换函数调用。但如果函数很复杂(如递归、包含静态变量、switch等),则编译器会忽略该请求。因此,即使我们在类内部声明函数,如果它很复杂,则编译器会忽略该请求。那么,如果我们可以让编译器自动为我们执行此操作,为什么还要在类外定义函数呢?
inline
。你可以直接从C++标准中读到这一点。 - Jesper Juhl