In der Login.cpp definierst du void Login::SetName(char* NewName[]) statt void Login::SetName(char NewName[]).
Da du in C++ Methoden überladen kannst, was heißt, dass Funktionen mit gleichen Namen und unterschiedlichen Parametern existieren können, deklarierst du eine Funktion namens SetName mit dem Parameter NewName vom Typ char[] und definierst eine Funktion namens SetName mit dem Parameter NewName vom Typ char*[] was ein Pointer eines Char-Arrays wäre statt einem Char-Array.
Was dein komisches C/C++ Gemisch sein soll und wieso du C-Header wie stdio.h inkludierst, gehört hier zwar nicht hin, aber dennoch ist das nicht unbedingt die beste Praxis.
In der Login.cpp definierst du void Login::SetName(char* NewName[]) statt void Login::SetName(char NewName[]).
Da du in C++ Methoden überladen kannst, was heißt, dass Funktionen mit gleichen Namen und unterschiedlichen Parametern existieren können, deklarierst du eine Funktion namens SetName mit dem Parameter NewName vom Typ char[] und definierst eine Funktion namens SetName mit dem Parameter NewName vom Typ char*[] was ein Pointer eines Char-Arrays wäre statt einem Char-Array.
Was dein komisches C/C++ Gemisch sein soll und wieso du C-Header wie stdio.h inkludierst, gehört hier zwar nicht hin, aber dennoch ist das nicht unbedingt die beste Praxis.
Die Fehler die du mir geschrieben hast sind korrekt, jedoch waren Sie für mich nicht relevant, da die login.cpp die ganze zeit nicht mit compiliert wurde demnach hatte ich dort keien Fehlermeldung erhalten. Ich musste nur in c::b diese dateien (login.h, login.cpp) 2 optionen hinzufügen. Siehe da sie wurden compiliert und mein Fehler war wie weggewischt. War also ein reines c::b problem.
Nun zu meinem unsauberen Code. Da ich eine AUsbildung zum Anwendungsentwickler mache und auf meiner Arbeit rein mit Web development zutun habe, bekomme ich in der Schule 1. veraltetes und 2. unschönes C bzw. C++ beigebracht. Es ist eher ein Mix aus beidem, wie man unschwer erkennen kann. Wir besitzen 3 Lehrer und jeder hat eine andere mentalität was das lernen mit Programmiersprachen betrifft. Egal...jedenfalls danke für eure Hilfe.
Warum benutzt du hier new? Bei deinem Anwendungsfall hat das Objekt nichts auf dem Heap verloren. Das hat gleich mehrere Gründe. Zum einen hast du ein Speicherleck, da du den Speicher nicht wieder mit delete frei gibst und zum anderen ist das hier ganz einfach unnötig. Leg das Objekt auf den Stack, dann musst du dich gar nicht mehr um den Speicher kümmern.
Benutze keine char-arrays, wenn du strings willst. Dafür gibt es die Klasse std::string im Header <string>. Sobald der Benutzer nämlich mehr als die vorhergesehenen 20 Zeichen eingibt, kommt es zu einem buffer overflow. Bei einem std::string passiert das nicht und er bringt noch gleich einen Haufen anderer Vorteile mit sich.
Das bringt uns dann zum nächsten Punkt, die Benutzereingaben. Die fängt man nicht mit scanf ab. Das ist nicht nur sehr unflexibel, sondern auch noch sehr unsicher (Overflow z.B.). Wenn du es richtig machen möchtest, dann benutze std::cin.
In der GetName Methode erzeugst du undefined behavior. Du legst einen char auf den Stack und gibst dann einen Pointer auf diesen char zurück. Nachdem die Methode jedoch verlassen wird, wird der Stack bereinigt und dein Pointer kann nun auf alles mögliche zeigen.
Mehr fällt mir auf die Schnelle nicht auf, aber das sollte schonmal ausreichen fürs erste.
In der GetName Methode erzeugst du undefined behavior. Du legst einen char auf den Stack und gibst dann einen Pointer auf diesen char zurück. Nachdem die Methode jedoch verlassen wird, wird der Stack bereinigt und dein Pointer kann nun auf alles mögliche zeigen.
Um genau zu sein, ist erst die Verwendung des Rückgabewertes undefiniertes Verhalten, weshalb nur in der ersten Version des Quelltextes undefiniertes Verhalten auftritt. Das muss natürlich dennoch geändert werden.
[B] Kostenlose Signaturen l Übung 07/22/2011 - elite*gold Trading - 10 Replies Hallo Leute,
ich würde gerne wieder etwas üben, darum habt ihr die Chance, dass ich kostenlose Signaturen erstelle.
Was ihr machen müsst ?
Das Ausfülllen :
Übung macht den Meister 01/31/2011 - Metin2 Private Server - 5 Replies Hey Epvp
Da ich mir nun einen Root gekauft habe.Der
Soll Irgendwann ankommen.Habe ich mir überleg.
Das ich nicht beim installieren irgendwas falsch machen möchte.
Deswegen Meine Frage:
Gibt es irgendeine Art die Installation auf meinem Pc "Vorzuüben"?
MFG
XtReMe.
Kleines Tool zur Übung 12/31/2010 - AutoIt - 3 Replies Ich hab mal ein bischen mit _Imagesearch rumgespielt
und rausgekommen ist ein kleines Tool für das Browsergame
Die-Staemme
Was macht es?
Es erscheint eine Gui in der versch. Buttons sind mit den jeweiligen Gebäuden(nicht alle....)
Wenn man auf die Buttons von Gebäude klickt wird nach den Gebäuden auf dem Bildschirm gesucht und raufgeklickt.
Bei Symbolen sind die Symbole im Hauptgebäude gemeint..
also wenn man z.b. auf das Symbol Holzfäller klickt wird nach diesem Symbol gesucht und...