私はクラス 'dStructs' を持っています。このクラスでは、公的にアクセス可能な構造体 'entity' と 'point' をいくつか定義しています。これらの構造体は、クラス ブラケット 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);
};
コンストラクターの定義を .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);
}
ただし、コードで構造体「ポイント」または「エンティティ」が使用されている場所で未解決の外部シンボルエラーが発生するため、喜びはありません。
このエラーが発生するために、構造体 (およびそれらの相対コンストラクター) の宣言でどこが間違っているのか、誰にもわかりますか?