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)
(我没有完全包括这些方法因为我认为它们不相关)
对不起,我知道这可能是一个非常愚蠢的小错误,我正在制作.
头文件中的构造函数和析构函数不应包含类的名称.
更改
PhysEng2D::PhysEng2D();
PhysEng2D::~PhysEng2D();
Run Code Online (Sandbox Code Playgroud)
至
PhysEndg2D();
~PhysEng2D();
Run Code Online (Sandbox Code Playgroud)
而且你不需要在.cpp中重新包含"primitives.h".