Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » struct zugriff geht nicht...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.10.2006, 20:11 Uhr
elturco



Hiii,

ich versuche was in OpenGL zu machen, und zwar möchte ich, die Koordinaten abspeichern, wenn ich mit der Maus auf die Benutzeroberfläche drücke.

Mein struct hat die Form:

C++:
struct point
{
    int x,y;

};


Meine Datenstruktur:

C++:

using namespace std;

vector<point> punktliste;

void speichern(int x, int q)
{    

        point punkt = (x,q);
        punktliste.push_back(punkt);
}


Ich meine Ereigniss-Funktion:

C++:

void polyline(GLint button, GLint action, GLint xMouse, GLint yMouse) //Mouse callback prozedur
{
    static point endPt1, endPt2;
    static float x,y;
    struct point a;
    
    if(button == GLUT_RIGHT_BUTTON && action == GLUT_DOWN)
        {
            endPt1.x = xMouse;
            endPt1.y = winHeight - yMouse;

            cout<<endPt1.x<<"\n" ;
            cout<<endPt1.y<<"\n";
            
            point nummer;
            a.x = endPt1.x ;
            a.y = endPt1.y;
                    
            drawLineSegment(endPt1, endPt2);
            speichern(a.x, a.y);
            glFlush();
            drawLine(endPt1, endPt2);
    
            glFlush();



Ich bekome immer die Fehlermeldung:

C++:
error C2440: 'initializing' : cannot convert from 'int' to 'struct point'



Wenn ich dass aber nicht in Int hab kann ich mit den Koordinaten nichts anfangen, kann mir jemand sagen wie das Problem lösen kann ?

Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2006, 20:29 Uhr
Spacelord
Hoffnungsloser Fall



C++:
struct point
{
    point(int _x=0,int _y=0):x(_x),y(_y){}
    int x,y;
};

.......

void speichern(int x, int q)
{    
        point punkt(x,q);
        punktliste.push_back(punkt);
}



Gruß Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.10.2006, 22:31 Uhr
xXx
Devil


oder einfach:

C++:
point punkt = { x, q };
sollte auch gehen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.10.2006, 10:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


btw. gleiche frage unterster post hier:

www.fun-soft.de/showtopic.php?threadid=16440
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.10.2006, 12:43 Uhr
elturco



Muss ich denn eine initialisierung beim Konstruktor durchführen, ich bekomme nämlich immer eine Fehlermeldung mit:


error C2552: 'punkt' : non-aggregates cannot be initialized with initializer list
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.10.2006, 18:44 Uhr
(un)wissender
Niveauwart


Vermutlich fehlt die Definition von struct vor der Verwendung.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.10.2006, 19:10 Uhr
Spacelord
Hoffnungsloser Fall


Besagtes
C++:
point punkt = { x, q };


funktioniert nur solange kein Konstruktor für point definiert ist,und point keine private oder protected Attribute enthält.
Das Thema ist aber schon lange durch.elturco hat das nämlich in nahezu jedem deutschen C++ Forum gepostet und in einem auch schon Antwort bekommen.

Gruß Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: