3Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
761
761
EMPFEHLEN
-
Moin moin,
Ich habe folgendes Problem:
In meinem Programm übergebe ich einer Methode ein Objekt der Klasse Karte.
In dieser Methode soll überprüft werden ob eine Karte bereits umgedreht ist, und wenn ja, sollen diese beiden verglichen werden.
Klappt wunderbar, bis auf eine Stelle:
Das klappt genau 1 Mal, denn ich weiß nicht, wie ich den Zeiger wieder leer kriege, ohne das Objekt zu löschen.Code :1 2 3 4 5
if(!letzteKarte) //prüfen ob letzte karte null ist { letzteKarte = karte; return; }
Also kein
Code :1
delete letzteKarte;
Weiß jemand rat?
-
Hi
was haben denn die Karten für einen Variablentyp?
Und wie werden die zwei Instanzen erzeugt?
Bitte genau so, wie es im Code steht.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Aaalso:
Meine zeiger:
Meine Karten Klasse:Code :1 2
Karte^ letzteKarte; //die Karte, die gerade umgedreht wurde Karte^ letzteKarte2; //Hilfsvariabel
Konstruktor:Code :1
public ref class Karte : System::Windows::Forms::PictureBox
Instanzierung der Karten:Code :1 2
public: Karte(int index, int x, int y);
Code :1
Karte^ karte = gcnew Karte(intListe[randomint], x, y);
Das ganze wird mit der Methode aufgerufen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
void Memorie::bildGedrueckt(Karte^ karte) { if(!warten) { karte->umdrehen(); if(!letzteKarte) //prüfen ob letzte karte null ist { letzteKarte = karte; return; } if(letzteKarte->index == karte->index) { gefundenePaare++; //letzteKarte = 0; //letzte Karte null setzen Karte^ letzteKarte; } else { warten = true; timer->Start(); letzteKarte2 = karte; } } }
Der zeiger letzteKarte soll wieder in den Zustand gebracht werden, wie er war bevor das erste mal Zeile 8 der Methode aufgerufen worden wurde.
-
Also...
a) Du weist letzteKarte eine karte zu (Karte 1).
Für diese Karte gibts noch irgendwo eine andere Variable x.
b) Du weist letzteKarte eine andere karte zu (Karte 2),
willst aber nicht, dass Karte 1 aus der anderen Variable x verschwindet?
Dann war es schon von Anfang an richtig.
delete gibts in .NET sowieso nicht, das macht der GarbageCollector.
Ein Objekt wird erst dann gelöscht, wenn es dazu keine einzige Vaiable mehr gibt.
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Ohne es jetzt auszuprobieren (a) zu faul
b) keine Compiler hier):
Aber in C# würde man "letzteKarte" einfach auf null setzen!
Code csharp:1
letzteKarte = null;
Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Dafür gibt es bei C++/CLI das Schlüsselwort nullptr:
GrußCode cpp:1
letzteKarte = nullptr;
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
16.11.11 08:30 #7
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Ähnliche Themen
-
AS 3 --> Callback-Fkt. und Null-Pointer ?
Von Skid im Forum Flash PlattformAntworten: 2Letzter Beitrag: 27.07.10, 23:17 -
Object Null pointer exeption
Von Dingoman im Forum Java GrundlagenAntworten: 8Letzter Beitrag: 16.12.09, 20:13 -
Problem mit Pointer und NULL-Zeichen
Von Newtonianer im Forum C/C++Antworten: 8Letzter Beitrag: 16.03.09, 20:32 -
[c++] Pointer auf konstanten Pointer-Parameter setzen
Von digitalFreeman im Forum C/C++Antworten: 4Letzter Beitrag: 18.02.09, 11:11 -
mysql Klasse Null Pointer Acces
Von GarGod im Forum JavaAntworten: 1Letzter Beitrag: 17.10.08, 08:15





Zitieren


Login





