在C ++中的类外部声明函数有什么好处?

时间:2019-11-06 16:14:48

标签: c++ function class inline declaration

我对C ++相当陌生。我遇到了两种在C ++中声明成员函数的方法,即。内部类和外部类。我搜索了差异,并说在类内部定义的函数被视为内联函数。

当我以前阅读内联函数时,它说内联只是对编译器的要求,以替代函数主体而不是调用函数。但是,如果函数很复杂(例如递归,包含静态变量,switch等),则编译器将忽略该请求。 因此,即使我们在类内部声明函数,如果它是复杂的,编译器也会忽略该请求。那么,如果我们可以让编译器本身的决定自动为我们完成,那么在类外定义函数又有什么意义呢?

1 个答案:

答案 0 :(得分:2)

在类中定义复杂的成员函数会使类定义过于复杂且难以理解。

请记住,您可以使用内联的函数说明符声明成员函数,而无需在类中对其进行定义。

请注意,如果编译器将对类中定义的类的成员函数进行非内联调用,则对该函数的所有其他要求将与内联函数相同。例如,带有类定义的函数定义可以包含在许多编译单元中。

在类外定义成员函数可以将接口及其实现分开。