4
ヘッダーファイルに構造体を定義し、そのメンバーを腐食性の.cppファイルに設定しています。これを行うために、私はそのスコープに(同じ)構造体を作成し、それを返すことになっている関数を使用しています。このような何か:ヘッダー内のC++ structの型名が指定されていません
:
#include <things>
class GLWindow : public QGLWidget, public QGLFunctions
{
Q_OBJECT
public:
GLWindow(QWidget *parent = 0);
~GLWindow();
//....
struct Drawable
{
GLuint vertexBuffer;
GLuint indexBuffer;
int faceCount;
QMatrix4x4 transform;
}cube;
GLuint cubeTex;
Drawable CreateDrawable(GLfloat* C_vertices, GLfloat* C_tex, GLfloat* C_normals, GLushort* C_facedata, int faces);
//.....
};
のcppファイル内:
#include "glwindow.h"
Drawable GLWindow :: CreateDrawable(GLfloat *C_vertices, GLfloat *C_tex, GLfloat *C_normals, GLushort *C_facedata, int faces)
{
int faceCount =faces;
QMatrix4x4 Transform;
Transform.setToIdentity();
GLuint VB;
/*Create vertexbuffer...*/
GLuint IB;
/*Create indexbuffer...*/
Drawable drawable;
drawable.faceCount = fCount;
drawable.transform = Transform;
drawable.vertexBuffer = VB;
drawable.indexBuffer = IB;
return drawable;
}
void GLWindow :: someOtherFunction()
{
//.....
cube = CreateDrawable(cube_vertices, cube_tex, cube_normals, cube_facedata, cube_face);
//.....
}
私は'Drawableのは' タイプに名前を付けていないことを示すエラーを取得しています、しかし、私はこのエラーをなぜ受けているのか、それを排除するために何ができるのか理解できません。あなたはcppのファイルにDrawable
を修飾する必要があり
'CreateDrawable'はヘッダー宣言で' void'を返します。 –
ヘッダーファイルで、 'CreateDrawable(...)ではなくDrawable CreateDrawable(...)にしないでください。 ..) '? – Treb
another.anon.cowardとTrebはい。それを編集しました。 –