<?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[Konstruktor - Parameter später übergeben?]]></title><description><![CDATA[<p>Hallo,</p>
<p>angenommen ich habe zwei Klassen. Klasse A und Klasse B. In der Klasse A habe ich ein privates Objekt vom Typ B angelegt.<br />
Der Konstuktor von B erwartet allerdings Parameter. Wie kann ich die Parameter später übergeben, wenn Methoden von A aufgerufen werden?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class A
{
public:
	A();
	void setBInteger(int i);		//Soll dem Konstuktor B übergeben werden
	void setBChar(char c);		  //Soll dem Konstuktor B übergeben werden
private:
	B bobj;						 //bobj erwartet Übergabeparameter, ich kann diese noch nicht angeben, da erst die beiden Methoden aufgerufen werden sollen.
};

class B						     //Auf diese Klasse habe ich keinen Einfluss, bzw. ich kann sie nicht verändern. Ich kann die beiden Werte nur mit dem Konstruktor Aufruf übergeben.
{
public:
	B(int i, char c);
	void setTimeout(int t);

private:
	int timeout;
}
</code></pre>
<p>Ich hoffe das Beispiel ist deutlich, wie gesagt, es soll nur als Beispiel dienen. Natürlich könnte ich die beiden Methoden von A zusammenfassen<br />
und dann eine Instanz von B in der zusammengefassten Methode erzeugen. Das Objekt von B soll aber für die ganze Klasse verfügbar sein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/309496/konstruktor-parameter-später-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 06:30:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/309496.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Oct 2012 12:41:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 12:41:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>angenommen ich habe zwei Klassen. Klasse A und Klasse B. In der Klasse A habe ich ein privates Objekt vom Typ B angelegt.<br />
Der Konstuktor von B erwartet allerdings Parameter. Wie kann ich die Parameter später übergeben, wenn Methoden von A aufgerufen werden?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class A
{
public:
	A();
	void setBInteger(int i);		//Soll dem Konstuktor B übergeben werden
	void setBChar(char c);		  //Soll dem Konstuktor B übergeben werden
private:
	B bobj;						 //bobj erwartet Übergabeparameter, ich kann diese noch nicht angeben, da erst die beiden Methoden aufgerufen werden sollen.
};

class B						     //Auf diese Klasse habe ich keinen Einfluss, bzw. ich kann sie nicht verändern. Ich kann die beiden Werte nur mit dem Konstruktor Aufruf übergeben.
{
public:
	B(int i, char c);
	void setTimeout(int t);

private:
	int timeout;
}
</code></pre>
<p>Ich hoffe das Beispiel ist deutlich, wie gesagt, es soll nur als Beispiel dienen. Natürlich könnte ich die beiden Methoden von A zusammenfassen<br />
und dann eine Instanz von B in der zusammengefassten Methode erzeugen. Das Objekt von B soll aber für die ganze Klasse verfügbar sein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263512</guid><dc:creator><![CDATA[ctor12345]]></dc:creator><pubDate>Wed, 24 Oct 2012 12:41:42 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 12:46:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">A::A() : bobj(i,c) {}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2263516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263516</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 24 Oct 2012 12:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 12:49:02 GMT]]></title><description><![CDATA[<p>Erzeuge das Objekt erst, wenn du all Werte hast (bobj dann halt als Pointer) oder erzeuge das Objekt dann neu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263519</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Wed, 24 Oct 2012 12:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 12:49:36 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<pre><code class="language-cpp">A::A() : bobj(i,c) {}
</code></pre>
</blockquote>
<p>i und c müssen noch irgendwoher kommen. Zum Beispiel:</p>
<pre><code class="language-cpp">A::A(int i, char c) : bobj(i,c) {}
</code></pre>
<p>@Threadersteller: Wie kann ein A ein unvollständiges B haben? Dann wäre A auch nicht vollständig. Also ist entweder ein B kein Teil von A (und es ist falsch, das B als Member von A zu haben) oder die Initialisierung von A ist unvollständig (outs und mein Code gehen dieses Problem an).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263520</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 24 Oct 2012 12:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:01:31 GMT]]></title><description><![CDATA[<p>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263522</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 12:58:52 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>So stell ich mir vor was du willst,</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Glaubst du <em>wirklich</em>, dass er das will?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263525</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 24 Oct 2012 12:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:02:28 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>So stell ich mir vor was du willst,</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Glaubst du <em>wirklich</em>, dass er das will?</p>
</blockquote>
<p>Natürlich nicht. Aber sein Design ist einfach so verdammt <em>komisch</em>, ich meine, hä? Wie, wann will er bobj erzeugen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263526</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:08:19 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie, wann will er bobj erzeugen?</p>
</blockquote>
<p>Sobald ein Objekt von A erzeugt wird, soll auch eins von B erzeugt werden, sodass Methoden von A mit dem Objekt arbeiten können. Dass das Beispiel dort oben nicht funktionieren wird, ist mir bewusst. War ja auch nur dazu da um das ganze zu verdeutlichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263528</guid><dc:creator><![CDATA[ctor12345]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:11:48 GMT]]></title><description><![CDATA[<p>Wenn du so etwas hast, dann nimmst du B als Pointer in A und initialisiert diesen auf 0 (im Konstruktor). Sobald die beiden nötigen Variablen gesetzt sind (und der Pointer immernoch 0 ist) erstellt du B. Und alle anderen Funktionen die B benutzen sollen müssen vorher abfragen ob B schon erstellt wurde und ansonsten eine vernünftige Fehlerbehandlung durchführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263530</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:11:48 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:15:33 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Wenn du so etwas hast, dann nimmst du B als Pointer in A und initialisiert diesen auf 0 (im Konstruktor). Sobald die beiden nötigen Variablen gesetzt sind (und der Pointer immernoch 0 ist) erstellt du B. Und alle anderen Funktionen die B benutzen sollen müssen vorher abfragen ob B schon erstellt wurde und ansonsten eine vernünftige Fehlerbehandlung durchführen.</p>
</blockquote>
<p>Das war praktisch was ich meinte! Mit Smart-Pointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263531</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:16:44 GMT]]></title><description><![CDATA[<p>Vielen Dank an alle für Hilfe. Habe es nun verstanden. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2263533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263533</guid><dc:creator><![CDATA[ctor12345]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:20:25 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Wenn du so etwas hast, dann nimmst du B als Pointer in A und initialisiert diesen auf 0 (im Konstruktor). Sobald die beiden nötigen Variablen gesetzt sind (und der Pointer immernoch 0 ist) erstellt du B. Und alle anderen Funktionen die B benutzen sollen müssen vorher abfragen ob B schon erstellt wurde und ansonsten eine vernünftige Fehlerbehandlung durchführen.</p>
</blockquote>
<p>Das war praktisch was ich meinte! Mit Smart-Pointer.</p>
</blockquote>
<p>Bei solchen merkwürdigen Anfragen gehe ich davon aus das der Compiler zu alt für unique_ptr ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263536</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:20:25 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:30:56 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Wenn du so etwas hast, dann nimmst du B als Pointer in A und initialisiert diesen auf 0 (im Konstruktor). Sobald die beiden nötigen Variablen gesetzt sind (und der Pointer immernoch 0 ist) erstellt du B. Und alle anderen Funktionen die B benutzen sollen müssen vorher abfragen ob B schon erstellt wurde und ansonsten eine vernünftige Fehlerbehandlung durchführen.</p>
</blockquote>
<p>Das war praktisch was ich meinte! Mit Smart-Pointer.</p>
</blockquote>
<p>Bei solchen merkwürdigen Anfragen gehe ich davon aus das der Compiler zu alt für unique_ptr ist.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Noch nicht mal Templates/Boost?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263549</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:43:11 GMT]]></title><description><![CDATA[<p>Gibt Leute die müssen auf der Arbeit immer noch mit &quot;C-typischen&quot; &quot;C++&quot; leben... Templates? Schön wäre es. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263557</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:43:11 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:45:50 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Gibt Leute die müssen auf der Arbeit immer noch mit &quot;C-typischen&quot; &quot;C++&quot; leben... Templates? Schön wäre es. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Du armer, armer... gibt es etwas, das man für dich tun kann? Irgendwas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2263562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263562</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:45:50 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor - Parameter später übergeben? on Wed, 24 Oct 2012 13:46:31 GMT]]></title><description><![CDATA[<p>Bier. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2263563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2263563</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 24 Oct 2012 13:46:31 GMT</pubDate></item></channel></rss>