【c++debug】模板结构体的函数定义写在头文件中可能导致的多重定义错误(multiple definition)
当包含头文件的源文件被编译时,编译器会将模板结构体的函数定义实例化为具体的函数,并生成相应的目标代码。如果多个源文件都包含了这个头文件,并且它们都被编译为目标文件,那么链接器在链接这些目标文件时就会遇到多个相同函数定义的情况,从而导致多重定义错误。在C++中,如果将模板结构体的函数定义写在头文件中,而且这个头文件被多个源文件包含,可能会导致多重定义错误(multiple definition)。这样,每个源文件只会编译并实例化一次模板结构体的函数,避免了多重定义错误。关键字修饰这些函数的定义。
原创
2023-05-27 23:17:30 ·
985 阅读 ·
0 评论