在 C++ 中的 class 之外声明一个函数有什么好处?
What is the benefit of declaring a function outside class in c++?
我是 C++ 的新手。我遇到了两种在 C++ 中声明成员函数的方法,即。内部 class 和外部 Class。我搜索了差异,它说 class 中定义的函数被视为内联函数。
当我之前阅读内联函数时,它指出内联只是请求编译器替换函数体而不是调用函数。但如果函数很复杂(如递归、包含静态变量、开关等),那么编译器将忽略该请求。
因此,即使我们在 class 中声明函数,如果它很复杂,编译器也会忽略该请求。那么在 class 之外定义函数有什么意义,如果我们可以让编译器本身自动为我们做这个决定?
在 class 中定义复杂的成员函数会使 class 定义过于复杂且可读性差。
请记住,您可以在 class.
中声明带有函数说明符 inline 的成员函数,而无需其定义。
考虑到,如果编译器将对 class 中定义的 class 的成员函数进行非内联调用,但是对该函数的所有其他要求将与一个内联函数。例如,具有 class 定义的函数定义可以包含在许多编译单元中。
在 class 之外定义成员函数允许将接口及其实现分开。
我是 C++ 的新手。我遇到了两种在 C++ 中声明成员函数的方法,即。内部 class 和外部 Class。我搜索了差异,它说 class 中定义的函数被视为内联函数。
当我之前阅读内联函数时,它指出内联只是请求编译器替换函数体而不是调用函数。但如果函数很复杂(如递归、包含静态变量、开关等),那么编译器将忽略该请求。 因此,即使我们在 class 中声明函数,如果它很复杂,编译器也会忽略该请求。那么在 class 之外定义函数有什么意义,如果我们可以让编译器本身自动为我们做这个决定?
在 class 中定义复杂的成员函数会使 class 定义过于复杂且可读性差。
请记住,您可以在 class.
中声明带有函数说明符 inline 的成员函数,而无需其定义。考虑到,如果编译器将对 class 中定义的 class 的成员函数进行非内联调用,但是对该函数的所有其他要求将与一个内联函数。例如,具有 class 定义的函数定义可以包含在许多编译单元中。
在 class 之外定义成员函数允许将接口及其实现分开。