一个奇怪有趣的问题

来源:互联网 发布:网络兼职正规平台 编辑:程序博客网 时间:2024/04/29 16:08

今天碰到一个非常奇异的问题,问题是这样的,有两头文件 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中的相关代码去了,不知有谁遇到过