anfängerproblem cpp?

...komplette Frage anzeigen

4 Antworten

In deiner Funktion ist hallo surr eine lokale Variable und damit außerhalb der Funktion nicht mehr gültig, du bräuchtest dazu eine Globale Variable.

Also alle Hallo surr in deinen Funktionen löschen und unter die definition von hallo hallo surr schreiben.

Btw verwende entwas sprechendere Variablennamen und schau dir mal die Grundprinzipien von objektorientierter Programmierung an. Allgemein würde man das über ein Objekt und dem übergeben von Referenzen lösen.


Danke, funktioniert jetzt wie gewollt. 

0

In den Funktionen machwas() und showfield() wird nicht die Klasse hallo in der Funktion main() verändert, sondern jeweils als neue Instanz auf dem Stack angelegt. Alle Änderungen gehen somit verloren, sobald die Funktionen beenden werden.

Die Klasse hallo muss diesen Funktionen z.B. als Parameter übergeben werden.

Beispiel Prototyp :

void machwas ( hallo * );

Beispiel Aufruf

hallo surr;
machwas ( &surr );

Entweder du gibst dein objekt surr funktionsintern immer weiter oder du machst surr public. Hier hast du mehrere male eine kopie bon hallo in variable surr gesteckt, die lokale variable modifiziert und anschliessend wieder verfliegen lassen.

Es funktioniert nicht weil du in jeder Funktion ein neues Objekt erstellst. In machwas hast du ei  objekt namens surr und in show_field auch. Das sind aber nicht die gleichen.

Was möchtest Du wissen?