[H] - c++ Zugriffsverletzung sollte leicht zu lösen sein
-
Habe gerade eine Klasse in einer header-datei geschrieben, die einige private variablen hat, und eine PUBLIC int-funktion die die Variablen zurückgibt. Rufe ich die Funktion in meiner main auf, Bekomme ich eine Zugriffsverletzung beim Lesen... Warum???
Hier der Quellcode:Header:
Code:/* cMainFlugzeug.h Class Flugzeug Generiert das Hauptflugzeug. */ class cMainFlugzeug { private: int m; //Flugzeugmasse in Kg int FG; //Gewichtskraft des ACs in Newton int x,y,z; //Fluegzeug im 3d-Koordinatensystem double Vsink; double Vsteig; double Vflug; double Vgrund; double CA; //Auftriebsbeiwert des Acs (VARIABEL)! double CW; //Widerstandsbeiwert des ACs (Leicht Variabel)! int Fw; //Widerstandskraft des ACs in Newton int Fa; //Auftriebkraft des ACs in Newton int Hoehe; //Höhe über Meeresspiegel public: void setPosition(int ix, int iy, int iz) { this->x = ix; this->y = iy; this->z = iz; } int getPosition(char wichCood) { switch(wichCood) { case 'x': return x; break; case 'y': return y; break; case 'z': return z; break; } } };Aufruf in der main:
Code:cMainFlugzeug AIRPLANE; AIRPLANE.setPosition(4, 4, 4); MessageBoxA(NULL, LPCSTR(AIRPLANE.getPosition('x')), "Test", MB_OK);Hmmmm...
Bin mal gespannt auf die Lösung bestimmt iwas dummes
-
Was soll das werden?
MessageBoxA(NULL, LPCSTR(AIRPLANE.getPosition('x')), "Test", MB_OK);
Die Funktion MessageBox will einen String, Deine getPosition - Methode gibt aber einen int zurück.
-
Ok die Umwandlung durch LPCSTR()? Klappt so nicht?

Aber kann das einen Fehler bzg. Zugriffsverletzung auslösen? Müsste ich da nicht eher Probleme mit der Typumwandlung bekommen?
-
Luapin schrieb:
Aber kann das einen Fehler bzg. Zugriffsverletzung auslösen? Müsste ich da nicht eher Probleme mit der Typumwandlung bekommen?
Ja. Nein.
-
OK. Wie kann ich den int dann in einen LPCSTR umwandeln?
-
Das ist einfach ein C-String. Du könntest also einfach über einen (C++)-Stringstream konvertieren ...
C-Varianten wären zB sprintf oder itoa zu benutzen.
-
Ja klar mit sprintf hat es dann geklappt. Hatte mich da mit der Zugriffsverletzung so ein bisschen festgefahren richtung fehlende Berechtigung auf Variablenzugriff.
Mein erster Thread hier im Forum. Hat toll geklappt danke

-
Gemeinsam sind wir stark ...