Funktion mit Array als Rückgabewert
-
Hi,
habe folgendes Problem:will in meiner main.cpp eine funktion aus einem objekt aufrufen die ein array aus der main bekommt und ein array wieder zurückgibt. Bekomme dabei folgende Fehler:
variable or field
objektEinfuegen' declared void
field' was not declared in this scope
expected,' or
;' before '{' tokenmain.cpp:
FigurT fig; fig.objektEinfuegen(field);
FigurT.cpp:
void objektEinfuegen(*field){ for(int x = 0;x<breite;x++){ for(int y = 0;y<MAXOBJHOEHE;y++){ for(int z = 0;z<tiefe;z++){ if(objektfeld[x][y][z] != 0){ field[x][hoehe + y][z] = objektfeld[x][y][z]; } } } field[0][hoehe + MAXOBJHOEHE-1][0] = 3; //x- Koordinate des Figurmittelpunktes field[1][hoehe + MAXOBJHOEHE-1][0] = hoehe + 2; //y- Koordinate des Figurmittelpunktes field[2][hoehe + MAXOBJHOEHE-1][0] = 3; //z- Koordinate des Figurmittelpunktes } }
FigurT.h:
#ifndef FigurT_H #define FigurT_H class FigurT { private: public: GLint objektfeld[6][6][6]; void objektEinfuegen(GLint[6][14][6]); }; #endif
-
Wo und wie hast du field erstellt? Der meckert rum weil field nicht declariert ist und nimmt an das es vom typ void ist was zum übergabetyp nicht passt
-
field ist in der main erstellt, wollt nicht die ganze main posten, weil die mittlerweile ca 2 seiten lang ist.
main.cpp:
#include "Objekte\Objekt2.h" #include "steuerung.h" #include <math.h> #include "Objekte\Wuerfel.h" #include "area.h" #include <stdio.h> #include <stdlib.h> #include <GL/glut.h> #include "Objekte/Figur.h" #include "Objekte/FigurT.h" GLint field[breite][hoehe+MAXOBJHOEHE][tiefe]; void drawScene(void){ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glColor3f(0,1,1); Camdrehen(); glTranslatef(0,-10,-10); //initfield(); FigurT fig; fig.objektEinfuegen(field); drawfield(); glLoadIdentity(); glutSwapBuffers(); glutPostRedisplay(); }
-
aber fig.objektEinfuegen() erwartet doch einen Zeiger und du übergibst das Objekt an sich also müsste das doch
[cpp]#include "Objekte\Objekt2.h"
#include "steuerung.h"
#include <math.h>
#include "Objekte\Wuerfel.h"
#include "area.h"
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#include "Objekte/Figur.h"
#include "Objekte/FigurT.h"
GLint field[breite][hoehe+MAXOBJHOEHE][tiefe];void drawScene(void){
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glColor3f(0,1,1);
Camdrehen();
glTranslatef(0,-10,-10);
//initfield();
FigurT fig;
fig.objektEinfuegen(**&**field);//hier die änderung
drawfield();
glLoadIdentity();
glutSwapBuffers();
glutPostRedisplay();
}[/cpp]heissen