tun*_*nuz 6 c++ header conventions
作为一名新手C++程序员,我总是将我的类接口放在.h文件中并在.cpp文件中实现.但是我最近尝试了C#一段时间,我真的很喜欢它的清晰语法和组织文件的方式,特别是在标题和实现之间没有任何关系,你通常为每个.cs文件实现一个类,而你不需要标题.
我知道在C++中这也是可能的(你可以在.h文件中编写"内联"函数),但到目前为止,我总是看到C++项目中的文件.h和.cpp文件之间有明显的区别.这种方法有哪些优缺点?
谢谢
有几种方法可以将C++中的两个帮助分开.首先,如果您想在不更改接口的情况下更新库,那么在C++文件中使用代码意味着您只需更新库而不是库和标题.其次它隐藏了实施.也就是说,它强迫人们只根据界面来看你的类,如果代码编写得很好,就应该关注它们.最后,这种分离带来了界面+文档的一种审美清洁.这是你必须习惯的东西,但过了一段时间它会感觉很自然(意见.)
不要忘记构建时间.
将实现代码放在头文件中会使它们更容易被更改.更改头文件将导致重建包含它们的所有CPP文件,从而增加构建时间.这在大型项目中可能很重要.
我也是保持对我的库用户隐藏实现的粉丝.不幸的是,这对模板类不起作用.
我的经验法则是:在.H文件中保留声明,将定义保存在.CPP文件中.