来自大多数Java背景我最近开始学习一些C ++。 我正在尝试创建一个描述LinkedList的类。由于我希望这个类类似于外部库,所以我可以在其他应用程序中使用它,我需要将它声明为头文件。
据我所知,从设计的角度来看,C ++需要一个头文件和一个cpp文件,其中头文件将主要包含声明,并且实现将留给cpp文件。
我不明白的是,上述设计技术的实际目的是什么。能够快速浏览头文件并阅读有关每种方法功能的注释的观点对我来说似乎没什么问题,因为C ++(或至少我的Codeblocks编辑器)支持 / **像Java这样的注释,因此创建类的对象并简单地点击它就容易得多。按钮打开方法描述菜单,并以更有序和结构化的方式读取我喜欢的任何描述,而不是通过头文件。
此外,我注意到程序运行正常,如果将所有内容放在头文件中并完全忽略cpp文件。
所以我的问题归结为我是否应该只在头文件中实现所有内容,或者这是否被认为是不可接受的C ++编码实践,如果是,为什么。
答案 0 :(得分:0)
标头包含能够使用该功能所需的最低限度,因为它们可以访问某些中间预处理文件。该文件越小,编译该单元就越容易。
在这个意义上,它们必须包含结构定义和函数声明。这与Java不同,它不需要事先声明以便使用,并且是现在无法修复的历史工件。 #include
行真正将文本粘贴到实际C / CPP文件的标题中(排序 - 预处理,条件编译等也必须在标题中发生)