今天碰到一个非常奇异的问题,问题是这样的,有两头文件 test1.h,test2.h,已经两个源文件test1.cpp,test2.cpp,两个头文件中我定义了一个相同名称的类(只是名称一样,实现不一样),我在main.cpp中 #include"test1.h",具体结构如下:
test1.h
class A
{
//...
};
test2.h
class A
{
//...
};
test1.cpp
#include "test1.h"
test2.cpp
#include "test2.h"
main.cpp
#include "test1.h"
我在main中用到了test1.h中的类A,有趣的事情发生了,程序崩溃在test2.h中类A的析构函数中,其实整个工程我只在test2.cpp中包含了test2.h,也就是说整个工程根本没有用到test2.h中的A这个类,不知道gcc在链接时为啥链到test2.h中的相关代码去了,不知有谁遇到过