<?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[Brauche Hilfe]]></title><description><![CDATA[<p>Hi,</p>
<p>lerne mich gerade in cpp ein schreib dafür eine kleine anwendung um den umgang mit referenzen zu üben. Allerdings habe ich dabei ein problem.</p>
<pre><code class="language-csharp">// main.cpp

#include &lt;iostream&gt;

using namespace std;

class spieler {
  public:
    string   name, vorname;
    spieler(string n, string v);
    ~spieler();
};

spieler::spieler(string n, string v) {
  name = n;
  vorname = v;
  cout &lt;&lt; name &lt;&lt; &quot;, &quot; &lt;&lt; vorname &lt;&lt; endl;
}

spieler::~spieler() {
}

class szene {
  public:
    szene(spieler &amp;s);
    ~szene();
    void setSpieler(spieler &amp;s);
  private:
    spieler &amp; sp;
};

szene::szene(spieler &amp;s) {
  sp = s;
  cout &lt;&lt; sp.vorname &lt;&lt; endl;
}

void szene::setSpieler(spieler &amp;s) {
  sp = s;
  sp.vorname = &quot;Hans&quot;;
}

szene::~szene() {
}

int main() {

  spieler s1(&quot;Wurst&quot;, &quot;Karl&quot;);
  szene sz1(s1);
  sz1.setSpieler(s1);
  cout &lt;&lt; s1.name &lt;&lt; &quot;, &quot; &lt;&lt; s1.vorname &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>Bitte nicht über die Namensgebung wundern, ist für ein größeres Projekt.</p>
<p>Mein Problem: ich möchte gerne in der Klasse &quot;szene&quot; eine Referenz auf ein Objekt der Klasse &quot;Spieler&quot; haben, allerdings sagt der compiler mir:<br />
main.cpp: In constructor ‘szene::szene(spieler&amp;)’:<br />
main.cpp:32: error: uninitialized reference member ‘szene::sp’</p>
<p>ich verstehe darunter, das er die Referenz nicht initialisiert ist.</p>
<p>Was soll ich tun, oder hab ich ein verständnisproblem. Vielen Dank schonmal für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180770/brauche-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 22:34:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180770.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 May 2007 14:14:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 14:14:52 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>lerne mich gerade in cpp ein schreib dafür eine kleine anwendung um den umgang mit referenzen zu üben. Allerdings habe ich dabei ein problem.</p>
<pre><code class="language-csharp">// main.cpp

#include &lt;iostream&gt;

using namespace std;

class spieler {
  public:
    string   name, vorname;
    spieler(string n, string v);
    ~spieler();
};

spieler::spieler(string n, string v) {
  name = n;
  vorname = v;
  cout &lt;&lt; name &lt;&lt; &quot;, &quot; &lt;&lt; vorname &lt;&lt; endl;
}

spieler::~spieler() {
}

class szene {
  public:
    szene(spieler &amp;s);
    ~szene();
    void setSpieler(spieler &amp;s);
  private:
    spieler &amp; sp;
};

szene::szene(spieler &amp;s) {
  sp = s;
  cout &lt;&lt; sp.vorname &lt;&lt; endl;
}

void szene::setSpieler(spieler &amp;s) {
  sp = s;
  sp.vorname = &quot;Hans&quot;;
}

szene::~szene() {
}

int main() {

  spieler s1(&quot;Wurst&quot;, &quot;Karl&quot;);
  szene sz1(s1);
  sz1.setSpieler(s1);
  cout &lt;&lt; s1.name &lt;&lt; &quot;, &quot; &lt;&lt; s1.vorname &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>Bitte nicht über die Namensgebung wundern, ist für ein größeres Projekt.</p>
<p>Mein Problem: ich möchte gerne in der Klasse &quot;szene&quot; eine Referenz auf ein Objekt der Klasse &quot;Spieler&quot; haben, allerdings sagt der compiler mir:<br />
main.cpp: In constructor ‘szene::szene(spieler&amp;)’:<br />
main.cpp:32: error: uninitialized reference member ‘szene::sp’</p>
<p>ich verstehe darunter, das er die Referenz nicht initialisiert ist.</p>
<p>Was soll ich tun, oder hab ich ein verständnisproblem. Vielen Dank schonmal für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279694</guid><dc:creator><![CDATA[poe]]></dc:creator><pubDate>Sun, 06 May 2007 14:14:52 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 14:31:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">szene::szene(spieler &amp;s)
: sp(s)  // &lt;-- Das ist eine Initialisierer-Liste
{ 
  //sp = s;  &lt;-- Das ist nicht erlaubt
  cout &lt;&lt; sp.vorname &lt;&lt; endl; 
}
</code></pre>
<p>Referenzen dürfen nur einmal belegt und dann nicht mehr umgebogen werden.<br />
Das würdest du aber mit sp = s machen.</p>
<p>Referenzen müssen also vor Ausführung des Konstruktors initialisiert werden.<br />
Dafür gibt es die Initialisierer-Liste(hoffe habs richtig geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279710</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 06 May 2007 14:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 14:43:07 GMT]]></title><description><![CDATA[<p>Hallo Don06,</p>
<p>Don06 schrieb:</p>
<blockquote>
<p>Referenzen dürfen nur einmal belegt und dann nicht mehr umgebogen werden.<br />
Das würdest du aber mit sp = s machen.</p>
</blockquote>
<p>Klar dürfen Referenzen &quot;umgebogen&quot; werden. Durch die Initialisierungsliste<br />
wird nur die Initialisierung garantiert. Eine Referenz muss nunmal<br />
initialisiert werden, was dadurch sichergestellt wird.</p>
<pre><code class="language-cpp">class A{

public:
	A(int&amp; j, int k): i(j){
		i=k;
	}
	~A(){}

private:
	int&amp; i;
};

int main(){
	int j=1;
	int k=2;
	A a(j, k);
	return 0;
}
</code></pre>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279713</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 06 May 2007 14:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 14:56:57 GMT]]></title><description><![CDATA[<blockquote>
<p>Referenzen dürfen nur einmal belegt und dann nicht mehr umgebogen werden.</p>
</blockquote>
<p>ja</p>
<blockquote>
<p>Das würdest du aber mit sp = s machen.</p>
</blockquote>
<p>nein</p>
<blockquote>
<p>Klar dürfen Referenzen &quot;umgebogen&quot; werden.</p>
</blockquote>
<p>falsch</p>
<blockquote>
<p>Durch die Initialisierungsliste wird nur die Initialisierung garantiert. Eine Referenz muss nunmal initialisiert werden, was dadurch sichergestellt wird.</p>
</blockquote>
<p>richtig</p>
<p>CSpille schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class A{
	  
public:
	A(int&amp; j, int k): i(j){
		i=k;
	}
	~A(){}

private:
	int&amp; i;
};

int main(){
	int j=1;
	int k=2;
	A a(j, k);
	return 0;
}
</code></pre>
</blockquote>
<p>Un das hat was mit poes Problem zu tun?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15856">@poe</a>: Benutz keine Referenzen als Klassenmember, wenn du sie nicht unbedingt benötigst. Hier ist ein Zeiger angebracht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279719</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 06 May 2007 14:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 14:58:07 GMT]]></title><description><![CDATA[<p>nur mal so..</p>
<blockquote>
<p>Eine Referenz ist ein Aliasname für eine bereits existierende Variable. Eine Referenz existiert also nicht allein. Sie ist immer an eine Variable gebunden.</p>
</blockquote>
<p><a href="http://tutorial.schornboeck.net/referenzen.htm" rel="nofollow">http://tutorial.schornboeck.net/referenzen.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279721</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Sun, 06 May 2007 14:58:07 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 16:10:02 GMT]]></title><description><![CDATA[<p>Ich hab das jetzt mal getestet, erstmal vielen Dank für die Hilfe. Die Referenzen konnte nach dem Schema sp = s verändern.</p>
<p>Was ist denn besser, Zeiger oder Referenzen. Ich hab mich hier als erstes für Referenzen entschieden weil mir die Syntax besser gefiel. Als nächstes bräuchte ich jetzt einen vector von Referenzen. Macht das sinn?</p>
<p>Gruß<br />
Pö</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279749</guid><dc:creator><![CDATA[poe]]></dc:creator><pubDate>Sun, 06 May 2007 16:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 16:18:02 GMT]]></title><description><![CDATA[<p>Referenzen MÜSSEN definiert sein, Zeiger nicht.<br />
Im allg. ist daher vermutlich ein vektor von zeigern<br />
(die vielleicht auch mal null sein sollen) vorzusehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279754</guid><dc:creator><![CDATA[helpie]]></dc:creator><pubDate>Sun, 06 May 2007 16:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Sun, 06 May 2007 16:39:38 GMT]]></title><description><![CDATA[<p>ok, letzte Frage für heute.</p>
<p>Nur damit ich keinen Planungsfehler begehe. Macht es Sinn, oder ist es Möglich, die später erzeugten Objekte in eine Datei zu speichern und werden dabei auch die Zeiger beibehalten. D.h. ich hab eine reihen von Objekten erstellt die irgendwie zwischeneinander aufeinander zeigen, diese Objekte zu speichern?</p>
<p>Weis zwar nicht genau wie das geht, aber das es geht nehme ich einfach mal von anderen programmiersprachen ausgehend an. Z.b. kann man in Java Objekte einfach in eine Datei speichern und nachher wieder laden.</p>
<p>Es geht mir hier nur um die Frage, ob die Zeiger in den Objekten auch gespeichert werden können, bzw. ob sie richtig gespeichert werden.</p>
<p>Stichwort XML wäre hier vielleicht nicht falsch angebracht, allerdings ist das für meine Zwecke erstmal zu weit gedacht.</p>
<p>Gehts oder gehts nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>schönen Abend noch,</p>
<p>gruß<br />
Pö</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279776</guid><dc:creator><![CDATA[poe]]></dc:creator><pubDate>Sun, 06 May 2007 16:39:38 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe on Mon, 07 May 2007 03:28:38 GMT]]></title><description><![CDATA[<p>Achtung, einer erfahreneren wird mich vielleicht widerlegen, aber:<br />
so direkt ist mir das noch nicht untergekommen. Ueblicherweise ueberlaedt man vermutlich selbst den operator&lt;&lt; fuers schreiben in die Datei (man waehlt sich das format selbst) und den operator&gt;&gt; fuers auslesen und rekonstruieren des Objektes. Wuerde ich jetzt zumindest mal annehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280010</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Mon, 07 May 2007 03:28:38 GMT</pubDate></item></channel></rss>