c++ - 类成员函数声明疑问

标签 c++ class function inline

我正在阅读 C++ 教程,我遇到了这句话:

The only difference between defining a class member function completely within its class or to include only the prototype and later its definition, is that in the first case the function will automatically be considered an inline member function by the compiler, while in the second it will be a normal (not-inline) class member function, which in fact supposes no difference in behavior.

我知道内联函数是什么,我的疑问是选择哪种样式。我应该在类内还是类外定义每个函数?也许最简单的函数在里面,另一个在外面?
我担心在类中定义每个函数(即具有复杂的内联函数)可能会弄乱生成的代码并在执行期间引入调试问题或奇怪的行为。最后,还有“编码风格”问题。所以,
哪种方法更好?

谢谢你:)

最佳答案

我的风格:有时我会在类本身中放置非常短的(一两个线性)函数。我仍然希望作为内联函数的任何更长的时间都在类定义之后作为 inline 合格的实现,并且通常在一个单独的文件中,标题 #include 位于类定义。

将内联函数放在类外部的理由是,某些函数的实现通常只会妨碍人类读者对类的整体理解。一个 20 行的函数通常可以用一行注释来概括——当您阅读类定义时,该注释就是所需要的全部内容。如果您需要更多,请转到函数定义,或者更好的是,阅读 The Fine Documentation。 (期望有人阅读 F*** 代码并不能很好地替代精美的文档。)

关于c++ - 类成员函数声明疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373965/

相关文章:

c++ - 将数字四舍五入到指定的精度

ios - 如何在函数的返回类型中引用遵循协议(protocol)的类?

python - 如何调用类型(type)的类

c++ - 什么是函数客户端?

php - 在 PHP 中,为什么 echo 没有作为函数实现? (不是 echo 与 printf)

python - 要求正整数并验证输入的简单函数

c++ - 使用 G++ 而不是 LLVM 编译时代码速度明显变慢

c++ - 是否可以根据类型是整数类型还是浮点类型来重载模板函数?

c# - VS2019 哪里可以看到代码执行时间?

c++ - 如何在构造函数中为不同的类使用模板化类