我在a.h文件中定义了一个函数p1如下:
//a.h
void p1(){
......
}
然后将a.h包含到b.cpp和c.cpp中编译链接,得到链接错误link error,p1 already defined in b.obj请问该如何解决此问题?谢谢

解决方案 »

  1.   

    看看是不是在b.h和c.h中包含了a.h文件?
      

  2.   

    把函数声明和函数体分开就可以了或者在a.h当中做如下定义#ifdef __a__h__
    #define __a__h__
       
       以前的代码#endif
      

  3.   

    a.h当中
    void p1();
    a.cpp当中
    void p1()
    {
       ....
    };
      

  4.   

    .h文件中只能包含函数声明, 函数的定义要放在.cpp文件中;
      

  5.   

    你如果想把定义也包括在头文件里,那你就用inline声明函数