我有这个:
a.h
:
class a
{
}
void func(){} //some golobal function
b.h
:
include "a.h"
class b : public a
{
}
b.cpp
:
#include "b.h"
我收到错误:
error LNK1169: one or more multiply defined symbols found
我认为我得到了错误,因为全局函数定义了两次。我尝试将extern
放在函数之前但是不起作用。我也使用#ifndef..
,我仍然会收到错误。怎么能解决这个问题呢?
答案 0 :(得分:3)
您要么只在头a.h中声明该函数,要么在某个cpp模块中定义它,或者将其定义为内联函数。例如
inline void func(){}
否则函数将被定义多次,因为cpp模块包含头文件a.h或b.h。