因为编译器是源文件和头文件分离编译的,实际上,源文件由于包含了头文件,而头文件中包含了构造函数的实现,于是源文件生成目标文件的时候,包含了构造函数的实现。而main.cpp也包含了头文件,同样编译生成目标文件的时候,也会包含构造函数的实现。这样二者在链接阶段就会发现有两个一模一样的函数,出现了重定义的问题。
比较好的解决方法是在源文件中实现头文件中已经声明的函数。
参考博客
fatal error LNK1169: 找到一个或多个多重定义的符号的解决方案
最新推荐文章于 2024-05-19 15:19:28 发布