最近我在学图论时,定义一个全局数组,编译链接时出现了这个错误,困惑了我好久。

这个本质上是链接错误。 直到我看见这个
【【C++教程】国外大佬C++技术教程,油管百万级收藏,学C++看这个就够了!(中文字幕)】 https://www.bilibili.com/video/BV1oD4y1h7S3/?p=15&share_source=copy_web&vd_source=e3810583151437e80cf4523aa7018094
视频明白c++这个语言是以文件为翻译源,它区分文件形式是以后缀名来区分的,比如.cpp,.h文件,编译器的工作就是把源文件翻译成目标文件即.obj文件(本质就是二进制代码)


而链接的过程就是把不同的obj文件汇总成一个.exe文件,这就不可避免的一个变量,函数重复使用,比如a.h定义一个全局变量,b.cpp,c.cpp都要用,
a.h

b.cpp

c.cpp

小结就是:声明可以拷贝多次,定义只能拷贝一次,本质就是声明不分配内存。
作者在学习图论时遇到链接错误,通过观看C++教程理解到C++以文件后缀区分,声明和定义的差异:声明可多次,定义一次,强调了全局变量的声明不分配内存。视频链接提供了解决问题的关键视角。
852

被折叠的 条评论
为什么被折叠?



