我有一个类“dStructs”,其中定义了几个可公开访问的结构,“实体”和“点”。这些结构在类括号 dStructs 中完全定义。但是,我不确定我是否正确定义了它们的构造函数。代码看起来像这样......
#pragma once
#include <GL/glut.h>
class dStructs
{
public:
struct point
{
GLfloat x, y;
point()
{
}
point(GLfloat aX,GLfloat aY) //constructor for point
{
x = aX;
y = aY;
}
};
struct entity
{
point pos, size;
entity()
{
}
entity(GLfloat posX, GLfloat posY, GLfloat sizeX, GLfloat sizeY)
{
pos = point(posX,posY);
size = point(sizeX, sizeY);
}
};
static void copyPoint(point pointToCopy, point& toPoint);
static void copyEntity(entity entityToCopy, entity& toEntity);
};
我认为我在将构造函数定义放在 struct brats 中而不是在 .cpp 文件中时做错了。所以我尝试将它们移出,并像这样在.cpp中定义它们......
#include "dStructs.h"
dStructs::point::point()
{
}
dStructs::point::point(GLfloat aX, GLfloat aY)
{
x = aX;
y = aY;
}
dStructs::entity::entity()
{
}
dStructs::entity::entity(GLfloat posX, GLfloat posY, GLfloat sizeX, GLfloat sizeY)
{
pos = point(posX,posY);
size = point(sizeX, sizeY);
}
但是,这并不令人高兴,因为在我的代码中使用结构“point”或“entity”的任何地方都会导致未解决的外部符号错误。
任何人都可以在我的结构(及其相关构造函数)的声明中看到我在哪里出错以得到这个错误吗?