在C++中编写get/set方法变量的方法声明的样式?

kal*_*kal 6 c++ coding-style

你应该在.h文件中声明类的getters/setter,然后在.cpp中定义它们.或者在.h文件中同时执行它们.你喜欢哪种风格?为什么?我个人喜欢后者,其中所有这些都在.h中,并且只有与.cpp中的setter/getters相关的逻辑相关的方法.

Ecl*_*pse 12

对我来说,这取决于谁将使用.h文件.如果它是一个主要在模块内部的文件,那么我倾向于将小方法放在标题中.如果它是一个更外部的头文件,它提供了一个更固定的API,那么我将把所有内容都放在.cpp文件中.在这种情况下,我经常使用PIMPL Idiom作为完整的编译防火墙.

我看到将它们放入标题中的权衡取舍是:

  • 减少打字
  • 更容易内联编译器(尽管编译器有时可以在多个翻译单元之间进行内联.)
  • 更多编译依赖项


duf*_*ymo 8

我会说头文件应该是关于接口,而不是实现.我把它们放在.cpp中.