Joh*_*ang 9 c++ coding-style header
我被教导要将类定义和代码分开.
但是,我已经看到人们经常在标题中包含一些代码的情况,例如返回变量引用的简单访问方法.
你在哪里划线?
bdo*_*lan 15
一般来说,您希望编译器内联或模板化代码.在任何一种情况下,代码必须在编译器可用的任何地方都可用,因此您别无选择.
但是,请注意,您在头文件中放入的代码越多,编译所需的时间就越长 - 并且您最终会更频繁地触摸头文件,从而导致缓慢构建的连锁反应:)
最小化头中代码量的一个原因是最小化实现更改时要重新编译的代码量.如果你不关心它,你可以在标题中包含任意数量的代码.
有时只在头文件中使用代码才能有意地公开代码 - ATL为eaxmple执行此操作.
在开发大型C++项目时,您需要保持警惕,使每个.CPP文件尽可能少地与头文件一起使用.
所以我有一个简单的"画线"规则:
如果通过内联实现,您的头文件现在需要包含一个额外的头文件,您应该将实现移出头部并进入.CPP文件.
当然,这不是不内联的唯一原因,但这是一个不应该越过的线的明确例子.