<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hoffe ihr könnt mir helfen.</p>
<p>ich habe die Klasse Ort. Ein Ort wird durch seinen Namen, X und Y Koordinaten repräsentiert:</p>
<pre><code class="language-cpp">class Ort 
{
	private:
		string name;
		int x_koordinate,
		int y_koordinate;    

	public:
		  Ort(string eingabe_name, int eingabe_x = 0, int eingabe_y = 0)   // Default: Nullpunkt
		  : name(eingabe_name), x_koordinate(eingabe_x), y_koordinate(eingabe_y) {

		  }

		  int X() const { return x_koordinate;}
		  int Y() const { return y_koordinate;}  
};
</code></pre>
<p>Nun habe ich eine weiter Klasse in der die verkettet Liste erstellt wird, und die Methoden dafür stehen. Bisher habe ich im Hauptmenü nur den Namen des Ortes eingegeben. Dieser wurde dann in der Liste gespeichert.<br />
Nun soll die Klasse Ort verwendet werden.<br />
Das heißt, in der Liste soll nun ein Zeiger auf ein Objekt der Klasse Ort gespeichert sein.</p>
<p>Hier die Einfüge Methode der Liste aus der Klasse &quot;liste&quot;:</p>
<pre><code class="language-cpp">class liste{

private:

	struct knoten {
	  string info;
	  struct knoten *next;
	};

	struct knoten *pos;      // Positionszeiger
	struct knoten *pre_pos;  // Vorgänger des Positionszeigers
	struct knoten *anfang;   // Zeiger auf den Anfang  der Liste

public:

	liste() {
		pos = pre_pos = anfang = NULL; // Leere Liste 
		read_from_binary_file(); //vorhande Daten aus binäer Datei in die Liste laden.
	}

	~liste(){
		write_to_binary_file(); //vorhanden Einträge aus der Liste in Binär datei schreiben.
	}

...........

void ins(string x, int x_ko, int y_ko) {
			struct knoten *p = new knoten;  // erzeuge neuen knoten
			p-&gt;info = x;        // Infowert wird x
			p-&gt;next = pos;      // next wird initialisiert mit alten P.-Zeiger
								// es wird also VOR dem aktuellen Element eingefügt
			if (anfang == NULL)     // Leere Liste
					anfang = p;
			if (pre_pos != NULL)            // Positionszeiger hat einen Vorgänger
					pre_pos-&gt;next = p;
			else                            // neues Element steht am Anfang
					anfang = p;
			pos = p;              // Positionszeiger zeigt nun auf das neue Element
	}

........
};
</code></pre>
<p>Wie erstellt ich nun in der Einfügen Methoden die Zeiger auf ein Objekt der Klasse Ort und speichere diesen in der Liste ab.</p>
<p>Gruß</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240423/verkettete-liste-zeiger-auf-objekte-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 23:08:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240423.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 May 2009 14:04:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Wed, 06 May 2009 14:04:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hoffe ihr könnt mir helfen.</p>
<p>ich habe die Klasse Ort. Ein Ort wird durch seinen Namen, X und Y Koordinaten repräsentiert:</p>
<pre><code class="language-cpp">class Ort 
{
	private:
		string name;
		int x_koordinate,
		int y_koordinate;    

	public:
		  Ort(string eingabe_name, int eingabe_x = 0, int eingabe_y = 0)   // Default: Nullpunkt
		  : name(eingabe_name), x_koordinate(eingabe_x), y_koordinate(eingabe_y) {

		  }

		  int X() const { return x_koordinate;}
		  int Y() const { return y_koordinate;}  
};
</code></pre>
<p>Nun habe ich eine weiter Klasse in der die verkettet Liste erstellt wird, und die Methoden dafür stehen. Bisher habe ich im Hauptmenü nur den Namen des Ortes eingegeben. Dieser wurde dann in der Liste gespeichert.<br />
Nun soll die Klasse Ort verwendet werden.<br />
Das heißt, in der Liste soll nun ein Zeiger auf ein Objekt der Klasse Ort gespeichert sein.</p>
<p>Hier die Einfüge Methode der Liste aus der Klasse &quot;liste&quot;:</p>
<pre><code class="language-cpp">class liste{

private:

	struct knoten {
	  string info;
	  struct knoten *next;
	};

	struct knoten *pos;      // Positionszeiger
	struct knoten *pre_pos;  // Vorgänger des Positionszeigers
	struct knoten *anfang;   // Zeiger auf den Anfang  der Liste

public:

	liste() {
		pos = pre_pos = anfang = NULL; // Leere Liste 
		read_from_binary_file(); //vorhande Daten aus binäer Datei in die Liste laden.
	}

	~liste(){
		write_to_binary_file(); //vorhanden Einträge aus der Liste in Binär datei schreiben.
	}

...........

void ins(string x, int x_ko, int y_ko) {
			struct knoten *p = new knoten;  // erzeuge neuen knoten
			p-&gt;info = x;        // Infowert wird x
			p-&gt;next = pos;      // next wird initialisiert mit alten P.-Zeiger
								// es wird also VOR dem aktuellen Element eingefügt
			if (anfang == NULL)     // Leere Liste
					anfang = p;
			if (pre_pos != NULL)            // Positionszeiger hat einen Vorgänger
					pre_pos-&gt;next = p;
			else                            // neues Element steht am Anfang
					anfang = p;
			pos = p;              // Positionszeiger zeigt nun auf das neue Element
	}

........
};
</code></pre>
<p>Wie erstellt ich nun in der Einfügen Methoden die Zeiger auf ein Objekt der Klasse Ort und speichere diesen in der Liste ab.</p>
<p>Gruß</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706510</guid><dc:creator><![CDATA[MartinO]]></dc:creator><pubDate>Wed, 06 May 2009 14:04:19 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Wed, 06 May 2009 15:26:43 GMT]]></title><description><![CDATA[<p>Aus string info wird DeineKlasse info</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706577</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Wed, 06 May 2009 15:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Wed, 06 May 2009 16:51:52 GMT]]></title><description><![CDATA[<p>Sorry versteh ich nicht so ganz.<br />
Wozu brauch ich denn jetzt noch ein Klasse info?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706648</guid><dc:creator><![CDATA[MartinO]]></dc:creator><pubDate>Wed, 06 May 2009 16:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Wed, 06 May 2009 16:52:15 GMT]]></title><description><![CDATA[<p>Warum nicht um einen Schritt einfacher?</p>
<pre><code class="language-cpp">class ListeKnoten{

private:

    sting   info;

    // ggf. mehr Dateb

    ListeKnoten   *next,
                  *pre_pos,  // Vorgänger des Positionszeigers
                  *anfang;   // Zeiger auf den Anfang  der Liste

public:
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1706649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706649</guid><dc:creator><![CDATA[hartmut1164]]></dc:creator><pubDate>Wed, 06 May 2009 16:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Wed, 06 May 2009 17:13:49 GMT]]></title><description><![CDATA[<p>Danke hartmut für deinen Verbesserungsvorschlag.<br />
Werde ich einmal umsetzten, sobald das eigentliche Problem mit dem Zeiger auf die Objekte Klasse Ort gelöst ist.<br />
DA stehe ich nach wie vor auf dem Schlauch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706661</guid><dc:creator><![CDATA[MartinO]]></dc:creator><pubDate>Wed, 06 May 2009 17:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Wed, 06 May 2009 17:17:52 GMT]]></title><description><![CDATA[<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Aus string info wird DeineKlasse info</p>
</blockquote>
<blockquote>
<p>Sorry versteh ich nicht so ganz.<br />
Wozu brauch ich denn jetzt noch ein Klasse info?</p>
</blockquote>
<p>statt:</p>
<pre><code class="language-cpp">struct knoten {
      string info;
      struct knoten *next;
    };
</code></pre>
<pre><code class="language-cpp">struct knoten {
      Ort info;
      struct knoten *next;
    };
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1706664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706664</guid><dc:creator><![CDATA[nocheinmitglied]]></dc:creator><pubDate>Wed, 06 May 2009 17:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Thu, 07 May 2009 01:46:45 GMT]]></title><description><![CDATA[<p>MartinO schrieb:</p>
<blockquote>
<p>Danke hartmut für deinen Verbesserungsvorschlag.<br />
Werde ich einmal umsetzten, sobald das eigentliche Problem mit dem Zeiger auf die Objekte Klasse Ort gelöst ist.<br />
DA stehe ich nach wie vor auf dem Schlauch.</p>
</blockquote>
<p>Der Header:</p>
<pre><code class="language-cpp">class ListeKnoten{

private:

    sting   info;

    // ggf. mehr Dateb

    ListeKnoten   *next,
                  *pre_pos,  // Vorgänger des Positionszeigers
                  *anfang;   // Zeiger auf den Anfang  der Liste

public:

    ListeKnoten (const string   Data
                 ListeKnoten   *next    = NULL,
                 ListeKnoten   *pre_pos = NULL,
                 ListeKnoten   *anfang  = NULL);

    NewElement *Insert (const string  Data);
</code></pre>
<p>Soweit der Header - nun der Body der Class:</p>
<pre><code class="language-cpp">ListeKnoten::ListeKnoten (const string   Data,
                          ListeKnoten   *next,
                          ListeKnoten   *pre_pos,
                          ListeKnoten   *anfang)
{
    info    = Data;

    next    = next_loc;
    pre_pos = pre_pos_loc;
    anfang  = anfang_loc;
}

NewElement *ListeKnoten::Insert (string  Data)
{
    ListeKnoten    *NewElement;

    NewElement = new ListeKnoten (Data, next, this, anfang);

    next = NewElement;

    return next;
}
</code></pre>
<p>Edit:</p>
<ol>
<li>return-Value vergessen</li>
<li>Wozu dient eigentlich dieser anfang-Pointer?</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1706676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706676</guid><dc:creator><![CDATA[hartmut1164]]></dc:creator><pubDate>Thu, 07 May 2009 01:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verkettete Liste &#x2F; Zeiger auf Objekte einer Klasse on Thu, 07 May 2009 21:15:46 GMT]]></title><description><![CDATA[<p>So kannst du neue Orte anlegen (info : Orte *NeuOrt)</p>
<pre><code class="language-cpp">void ins(string i, int x, int y) {
			struct knoten *p = new knoten;
			p-&gt;next = pos;
			p-&gt;NeuOrt = new Orte(i,x,y);

			if (anfang == NULL) 
				anfang = p;
			if (pre_pos != NULL) 
				pre_pos-&gt;next = p;
			else 
				anfang = p;
			pos = p;
			anzahl++; 

		}
...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1707480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707480</guid><dc:creator><![CDATA[C++ MuMu]]></dc:creator><pubDate>Thu, 07 May 2009 21:15:46 GMT</pubDate></item></channel></rss>