别再怀疑人生1 .h文件和.cpp文件中到底该写什么?
在我想要完成的某一个较大型程序时(不敢说很大,但是比我之前写得都要大一些),我大概需要以下几部分,我知道我应该把它们放在不同的部分中:
- 类的声明
- 类中函数的定义
- 有关文件的函数(这是作业的要求)
- main函数
我的骚操作是:
- 把类的声明放在10-1.h文件中——(应该没啥大毛病)
- 把类中函数的定义放在10-1.cpp文件中,并include"10-1.h"——(应该没啥大毛病)
- 把有关文件的函数的定义放在10-1-file.cpp文件中,并include"10-1.cpp"
- 把main函数放在10-1-main.cpp文件中,并include"10-1-file.cpp"
以上操作理论上是没毛病的,并且把代码打上去之后也没有什么波浪线。但是当我运行起来的时候,直接200+的错误怼在我脸上。重复出现的错误就是error LNK2005。
其实最根本的问题是我不知道.h和.cpp文件中都应该写些什么。此前我写的程序都比较简单,没有出现这样的错误,但是这次就相对复杂。
我应该把声明都放在头文件中,把它们的定义放在源文件中。在每个cpp文件中只需要include头文件就可以了。
这两个文件在编译的时候地位显然是不同的。我本来以为在一个cpp文件中定义完一个函数,在另一个cpp文件中时不知道的,因此我进行了includecpp的不规范操作。但其实并不是。因为最后它们都会链接在一起。
其实,在打完include之后弹出的窗子里,就只有.h文件,而没有.cpp这个选项。我当时还比较疑惑嘞。现在看来,其实就是不支持罢了。