<?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[Objekt übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe zwei Klassen foo und bar.</p>
<pre><code class="language-cpp">class bar {
  public:
    foo x;
    bar(foo y) {x = y;}

};
</code></pre>
<p>Die eine Klasse hat eine Instanz der anderen. Beide haben Konstruktoren, die aufgerufen werden müssen. Wie kann ich die Variabel x in bar initialisieren? Der Code oben funktioniert jedenfalls nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311487/objekt-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 14:16:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311487.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Dec 2012 17:00:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 17:00:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe zwei Klassen foo und bar.</p>
<pre><code class="language-cpp">class bar {
  public:
    foo x;
    bar(foo y) {x = y;}

};
</code></pre>
<p>Die eine Klasse hat eine Instanz der anderen. Beide haben Konstruktoren, die aufgerufen werden müssen. Wie kann ich die Variabel x in bar initialisieren? Der Code oben funktioniert jedenfalls nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2277853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277853</guid><dc:creator><![CDATA[objekt]]></dc:creator><pubDate>Thu, 06 Dec 2012 17:00:28 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 17:03:23 GMT]]></title><description><![CDATA[<p>Du kannst initialisieren, indem du die Initialisierungsliste benutzt:</p>
<pre><code>class A
{
  B b_;
public:
  A(B b)
    : b_(b) // std::move?
  {}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2277856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277856</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 06 Dec 2012 17:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 17:08:50 GMT]]></title><description><![CDATA[<p>danke! und wie kriege ich es hin, den Konstruktor von b_ aufzurufen, wenn das Objekt erst noch erstellt werden muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2277861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277861</guid><dc:creator><![CDATA[objekt]]></dc:creator><pubDate>Thu, 06 Dec 2012 17:08:50 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 17:11:33 GMT]]></title><description><![CDATA[<p>objekt schrieb:</p>
<blockquote>
<p>danke! und wie kriege ich es hin, den Konstruktor von b_ aufzurufen, wenn das Objekt erst noch erstellt werden muss?</p>
</blockquote>
<p>Der wird doch automatisch aufgerufen, wenn das Objekt erstellt wird, das ist schließlich gerade der Erstellungsprozess. Mit der Initialisierungsliste gibst du an, wie (d.h. mit welchem Konstruktor und welchen Parametern) dass b_ erstellt werden soll.</p>
<p>Oder verstehe ich gerade nicht, was du meinst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2277863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277863</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 06 Dec 2012 17:11:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 19:23:11 GMT]]></title><description><![CDATA[<p>Ok, ich verstehe. Mein Code bezieht sich auf folgendes Problem:</p>
<pre><code class="language-cpp">vector&lt;A&gt; arr; //Ich habe eine Vektor mit foo-Instanzen
while(bedingung) {

  arr.push_back(//???

}
</code></pre>
<p>Ich möchte in einer Schleife Instanzen von A erstellen, die ich dann in arr ablege. Wie geht das in C++? Der vector arr wird dann nämlich wiederum an eine andere Klasse gegeben, die ihn verarbeitet.</p>
<p>Die Klasse A sieht so aus, wie cooky451 dargestellt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2277940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277940</guid><dc:creator><![CDATA[objekt]]></dc:creator><pubDate>Thu, 06 Dec 2012 19:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 19:31:47 GMT]]></title><description><![CDATA[<p>Um ein A zu erstellen brauchste ja noch ein B. Wo kommt das her?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2277946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277946</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 06 Dec 2012 19:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 19:46:44 GMT]]></title><description><![CDATA[<p>ohh...sorry! A bekommt über den Konstruktor jetzt die Werte, die B im Konstruktor braucht, sodass B automatisch beim Anlegen von A erzeugt wird. Also entspricht es doch nicht ganz deinem Code.</p>
<p>Ich muss also verschiedene Instanzen von in einer Schleife anlegen. Wie mache ich das in C++?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2277952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277952</guid><dc:creator><![CDATA[objekt]]></dc:creator><pubDate>Thu, 06 Dec 2012 19:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 19:51:18 GMT]]></title><description><![CDATA[<p>objekt schrieb:</p>
<blockquote>
<p>Wie mache ich das in C++?</p>
</blockquote>
<p>Sag es erst einmal auf Deutsch. Da fehlen ein paar entscheidende Nomen und Verben in deinen Sätzen. Keine Ahnung, was du tun möchtest. Ich rate mal:</p>
<pre><code>arr.push_back(B(parameter, vom, B_Objekt));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2277956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277956</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 06 Dec 2012 19:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt übergeben on Thu, 06 Dec 2012 19:52:07 GMT]]></title><description><![CDATA[<blockquote>
<p>A bekommt über den Konstruktor jetzt die Werte, die B im Konstruktor braucht, sodass B automatisch beim Anlegen von A erzeugt wird.</p>
</blockquote>
<p>Nein. Oder sagen wir mal, nur bedingt. Wenn B nur einen Parameter im Konstruktor erwartet (und der nicht als explicit definiert ist), dann geht das. Man modelliert damit eine Art &quot;ist ein&quot;, wie z.B. bei std::string:</p>
<pre><code>void foo(std::string s);

int main()
{
  foo(&quot;Hallo&quot;);
}
</code></pre>
<p>Das ist aber eher eine Art Sonderregel, allgemein schreibt man</p>
<pre><code>void foo(std::string s);

int main()
{
  foo(std::string(&quot;Hallo&quot;));
}
</code></pre>
<p>Und genau so sieht das dann auch bei dir aus:</p>
<pre><code>std::vector&lt;A&gt; v;

while(blubb)
{
  v.push_back(A(B(/* Parameter? */)));
}
</code></pre>
<p>Oder, wenn jedes a mit dem gleichen B erzeugt werden soll, wahlweise auch</p>
<pre><code>std::vector&lt;A&gt; v;

B b(/* Parameter? */);
while(blubb)
{
  v.push_back(A(b));
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2277958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2277958</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 06 Dec 2012 19:52:07 GMT</pubDate></item></channel></rss>