我在许多库中看到过包含两个文件,一个是.H文件,另一个是.CPP文件。 .h是包含函数原型的头文件,.CPP包含头文件中每个函数的实际c ++代码。
我想问一下,我可以创建一个.h文件,并在其中编写所有c ++函数和类。并在main.cpp
中包含该.h文件答案 0 :(得分:6)
是的,你可以。这有时称为仅限标题库。
当然,由于您的函数可能包含在同一程序的多个CPP文件中,因此您需要将它们全部内联(或使用内部链接,静态或匿名命名空间)。
您可以在优秀的boost图书馆馆藏中看到其中的一些。
答案 1 :(得分:1)
是的你可以这样做。标题中的所有代码将在编译时粘贴到“main.cpp”文件中。标准是声明在头或hpp中,然后实现在源或cpp中完成。但是你可以把它全部放在一个标题中并包含头文件,它将在编译后工作。您可以在标题中将“main.cpp”中的确切内容声明,然后将其实现到另一个cpp文件中,而不是使用.h文件然后编译它,它将与#include“MyClass.hpp”一样工作(请注意我个人使用hpp表示c ++标题,h表示c标题,这对我来说更容易。)
答案 2 :(得分:0)
我想问一下,我可以创建一个.h文件,并在其中编写所有c ++函数和类。并在main.cpp
中包含该.h文件
是的,你可以这样做。可以将所有定义内联到头文件中 虽然这很不寻常,除非你有一个标题(模板)库。
将定义分离到自己的翻译单元的原因之一是,当实现的一些小部分发生变化时,您不必重新编译所有相关代码。