c ++中未定义的引用编译器错误

Eil*_*idh 0 c++ compiler-construction undefined-reference

当我尝试编译代码时,我收到以下错误消息 -

在函数'__static_initialization_and_destruction_0'中:home/user/main.cpp:50:对'PhysEng2D :: PhysEng2D(void)'的未定义引用

第50行唯一的代码是 -

PhysEng2D Physics; 
Run Code Online (Sandbox Code Playgroud)

PhysEng2D的头文件是 -

#ifndef _PHYSENG2D_H_ 
#define _PHYSENG2D_H_ 

#include "primitives.h"

class PhysEng2D
{
public:

    PhysEng2D::PhysEng2D(); 
    PhysEng2D::~PhysEng2D();

    bool IsBoundingBoxCollision(PS2Sprite & S1, PS2Sprite & S2); 

    bool IsWallCollision(PS2Sprite & S); 

}; 

#endif
Run Code Online (Sandbox Code Playgroud)

PhysEng2D的其余部分的开头是 -

#include "primitives.h"
#include "physeng2d.h" 


PhysEng2D::PhysEng2D()
{
    //Nothing to Initialise 
}

PhysEng2D::~PhysEng2D()
{
    //Nothing to clean up
}
Run Code Online (Sandbox Code Playgroud)

(我没有完全包括这些方法因为我认为它们不相关)

对不起,我知道这可能是一个非常愚蠢的小错误,我正在制作.

Rav*_*ine 6

头文件中的构造函数和析构函数不应包含类的名称.

更改

PhysEng2D::PhysEng2D(); 
PhysEng2D::~PhysEng2D();
Run Code Online (Sandbox Code Playgroud)

PhysEndg2D();
~PhysEng2D();
Run Code Online (Sandbox Code Playgroud)

而且你不需要在.cpp中重新包含"primitives.h".