You are not logged in.

  • Login

1

Monday, December 20th 2010, 3:16pm

Der This-Zeiger

Hallo!
Ich lese jetzt zum 7. mal den Artikel in meinem Buch über diesen This-Zeiger. Doch ich verstehe es einfach nicht.
Könnte ihn mir hier jemand nochmal erklären?

2

Monday, December 20th 2010, 3:33pm

hallo,

was genau verstehst du nicht?
this ist der zeiger auf das beinhaltende objekt selbst.

thx, truespin

3

Monday, December 20th 2010, 6:48pm

Hallo Checkmateing,

im Groben ist es so, dass innerhalb einer Elemtfunktion das Schlüsselwort „this“ für einen Zeiger auf das Objekt, für welches die Funktion aufgerufen wurde, steht. Das wäre z.B.:

C# Quellcode

1
2
3
4
5
6
7
8
9
public class meineKlasse
{
  int Hour = 0;
 
  public void SomeMethod(int hour)
  {
	this.Hour=hour;
  }
}

Das „this“ Schlüsselwort verweist auf die aktuelle Instanz der Klasse.
In dem Beispiel gibt es in der Klasse eine Definition von Hour. Dem Hour weist man mit „this.Hour = Hour“ den Wert von Hour zu. Diesen Wert bekommt man per Parameter in der Methode „public void SomeMethode(int hour)“. Wenn es in einer Klasse mehrere Methoden gibt, kann man dann darauf zugreifen.
Hier gibt es weitere Erklärungen mit wirklich guten Beispielen:

http://ag-kastens.upb.de/lehre/material/…c++_node12.html https://www.mi.fu-berlin.de/wiki/pub/ABI…10/Thursday.pdf
http://www.cpp-tutor.de/cpp/le10/this.html
Ich hoffe das hilft dir weiter!! ;) viel spass beim ausprobieren.


4

Monday, December 20th 2010, 7:29pm

Das habe ich verstanden. Was ich nicht verstehe ist, im Buch ist so was wie das gezeigt: (angenommen alles nötige ist vorhanden)

C/C++ Quellcode

1
pWerft->ZeigeName ();


Was hat es zu bedeuten, dass man jetzt das Schlüsselwort "this" nicht mehr verwendet?

5

Monday, December 20th 2010, 7:59pm

Wenn ich das jetzt richtig verstanden habe, dann hast du einen Zeiger, der auf die Instanz der Klasse zeigt, welche auf den übergebenen "this" Zeiger zeigte. Die Instanz wird bzw. kann dann nicht mehr mit "this" angesprochen werden. :P

6

Monday, December 20th 2010, 9:02pm

Was? :wacko:

7

Monday, December 20th 2010, 9:21pm

this wird nicht mehr so verwendet

8

Monday, December 20th 2010, 10:42pm

Aha
Also mir hat das Buch das so beigebracht:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// C++ für Spieleprogrammierer
// Listing 11.4
// Der this-Zeiger
//
#include <iostream>
 
using namespace std;
 
// Klassen
//
 
// Klasse für ein Raumschiff
//
class CRaumschiff
{
	public:
		CRaumschiff ();
		void ZeigeWerte ();
 
	private:
		int m_Geschwindigkeit;
 
};
 
// Konstruktor
CRaumschiff::CRaumschiff ()
{
	this->m_Geschwindigkeit = 500;
 
} // Konstruktor
 
// ZeigeWerte
void CRaumschiff::ZeigeWerte ()
{
	cout << "Geschwindigkeit: " << this->m_Geschwindigkeit;
	cout << endl;
 
} // ZeigeWerte
 
// Hauptprogramm
//
int main ()
{
	// Raumschiff erzeugen und Werte anzeigen
	CRaumschiff Jaeger;
 
	Jaeger.ZeigeWerte ();
 
	return (0);
}

Similar threads

Social bookmarks