<?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[constructor im constructor aufrufen]]></title><description><![CDATA[<p>Wie kann ich in einem constructor einen weiteren constructor einer anderen klasse aufrufen?</p>
<p>header 1:</p>
<pre><code class="language-cpp">#import &quot;B.h&quot;

class A{
public:
    A(int a);
private:    
    B 1;
    B 2;
    B 3;
};
</code></pre>
<p>cpp1</p>
<pre><code class="language-cpp">#import &quot;A.h&quot;

A::A(int a)
{
1 = B::B(a);
2 = B::B(a);
3 = B::B(a);
}
</code></pre>
<p>header 2</p>
<pre><code class="language-cpp">class B{
public:
    B(int a);
private:    
 int i;
};
</code></pre>
<p>cpp2</p>
<pre><code class="language-cpp">#import B.h&quot;

B::B(int a)
{
i = a;
}
</code></pre>
<p>Der constructor von B wird in A nicht gefunden was mach ich da falsch?<br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216733/constructor-im-constructor-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 01:15:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216733.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Jun 2008 19:08:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 19:08:45 GMT]]></title><description><![CDATA[<p>Wie kann ich in einem constructor einen weiteren constructor einer anderen klasse aufrufen?</p>
<p>header 1:</p>
<pre><code class="language-cpp">#import &quot;B.h&quot;

class A{
public:
    A(int a);
private:    
    B 1;
    B 2;
    B 3;
};
</code></pre>
<p>cpp1</p>
<pre><code class="language-cpp">#import &quot;A.h&quot;

A::A(int a)
{
1 = B::B(a);
2 = B::B(a);
3 = B::B(a);
}
</code></pre>
<p>header 2</p>
<pre><code class="language-cpp">class B{
public:
    B(int a);
private:    
 int i;
};
</code></pre>
<p>cpp2</p>
<pre><code class="language-cpp">#import B.h&quot;

B::B(int a)
{
i = a;
}
</code></pre>
<p>Der constructor von B wird in A nicht gefunden was mach ich da falsch?<br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537164</guid><dc:creator><![CDATA[Franky_]]></dc:creator><pubDate>Fri, 27 Jun 2008 19:08:45 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 19:15:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include&quot;A.h&quot;

A::A(int a):
1(a),2(a),3(a)
{
}
</code></pre>
<p>Also Import ist hier schon mal falsch. -&gt; #include<br />
2. Solltest du mal Initialisierungslisten anschauen.<br />
Und 3. Namenskonventionen auch nochmal. Ein Name kann nicht mit einer Zahl anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537167</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 27 Jun 2008 19:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 19:30:42 GMT]]></title><description><![CDATA[<p>Danke hat mir geholfen, dass mit den zahlen war nur ein Beispiel sorry.</p>
<p>Noch eine frage wenn ich nun in A über den constructor ein array mit 3 B elementen erzeugen will wie müsste ich dann vorgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537176</guid><dc:creator><![CDATA[Franky_]]></dc:creator><pubDate>Fri, 27 Jun 2008 19:30:42 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 19:47:52 GMT]]></title><description><![CDATA[<p>Franky_ schrieb:</p>
<blockquote>
<p>Noch eine frage wenn ich nun in A über den constructor ein array mit 3 B elementen erzeugen will wie müsste ich dann vorgehen?</p>
</blockquote>
<p>Arrays gehen nicht in der Initialisierungsliste. Da kommst du nicht drum herum das im ctor selber zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537185</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 27 Jun 2008 19:47:52 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 19:56:53 GMT]]></title><description><![CDATA[<p>müsste ich ja sowas in der art versuchen:</p>
<p>array ist schon definiert</p>
<p>A::A(int i)<br />
{<br />
array[0] = B::B(10);<br />
}</p>
<p>Aber ich kann nicht auf den constructor von B zugreifen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537195</guid><dc:creator><![CDATA[Franky_]]></dc:creator><pubDate>Fri, 27 Jun 2008 19:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 20:10:45 GMT]]></title><description><![CDATA[<p>weil der code so aussehen müsste:</p>
<pre><code>A::A(int i) 
{ 
 array[0] = B(10); 
}
</code></pre>
<p>der ctor wird immer in der form klasse(parameter) aufgerufen.<br />
der aufruf B::B(10) bedeutet, dass du aus dem namespace &quot;B&quot; eine funktion des namens B aufrufst oder eine klasse des typs &quot;B&quot; erzeugst. das existiert aber beides nicht.</p>
<p>edit: bitte immer die fehlermeldung deines compilers mitposten. &quot;geht nicht&quot; ist eine sehr wage beschreibung des problems. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537201</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Fri, 27 Jun 2008 20:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Fri, 27 Jun 2008 20:47:44 GMT]]></title><description><![CDATA[<p>Hab es jetzt mal so porbiert, das ist die fehlermeldung jetzt</p>
<p>A.cpp:24: error: no matching function for call to `B::B()'</p>
<p>B.h:23: note: candidates are: B::B(const B&amp;)</p>
<p>B.h:25: note: B::B(int)</p>
<p>constructor sieht so aus in der cpp:</p>
<p>A::A(int size)<br />
{<br />
Array[0] = B(size);<br />
}</p>
<p>Irgendwie findet er die funktion nicht in der 2. cpp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537225</guid><dc:creator><![CDATA[Franky_]]></dc:creator><pubDate>Fri, 27 Jun 2008 20:47:44 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Sat, 28 Jun 2008 05:17:10 GMT]]></title><description><![CDATA[<p>ah. jetzt wird es schon einigermaßen klarer.</p>
<p>c++ initialisiert jedes objekt. wenn du also ein array der form:</p>
<pre><code class="language-cpp">B array[10];
</code></pre>
<p>hast, werden 10 objekte des typs B erstellt. dafür ist der standard-ctor B() notwendig. der wird vom compiler selbstständig erzeugt, wenn du keine anderen ctor angibst. da du aber einen eigenen ctor definiert hast, musst du auch einen ctor der form B() definieren, wenn du den oben stehenden code nutzen willst.</p>
<p>sieht dann in deinem fall etwa so aus:</p>
<pre><code class="language-cpp">class B{
public:
    B();
    B(int a);
private:    
 int i;
};
</code></pre>
<pre><code class="language-cpp">B::B()
:i(0) //könnte man auch weglassen, aber dann hast du einen undefinierten wert von i
{}

B::B(int a)
:i(a)
{}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1537286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537286</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Sat, 28 Jun 2008 05:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Sat, 28 Jun 2008 09:44:42 GMT]]></title><description><![CDATA[<p>Einen constructor der form</p>
<pre><code class="language-cpp">B::B(int a)
:i(a)
{}
</code></pre>
<p>hab ich in b ja schon.</p>
<p>Habe ja in beiden klassen einen constructor definiert und implementiert. in a binde ich die header.h von b ein somit kenne ich ja dessen funktionen. Nun will ich in a ein array mit objkten von b erzeugen, dazu muss ich ja den constructor von b in a aufrufen und ihm den parameter übergeben. So und an der stelle scheitert es auch, ich kann nicht auf den constructor zugreifen der compiler meckert dann immer das es eben diesen constructor nicht geben würde.</p>
<p>über B::B(int i) sage ich ihm doch, das er den constructor im &quot;namespace&quot; von B findet oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537344</guid><dc:creator><![CDATA[Franky_]]></dc:creator><pubDate>Sat, 28 Jun 2008 09:44:42 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Sat, 28 Jun 2008 10:01:44 GMT]]></title><description><![CDATA[<p>du brauchst sowohl einen der form &quot;B()&quot; als auch den der form &quot;B(int a)&quot; darum habe ich dir auch beide in die klasse geschrieben... der ctor &quot;B()&quot; wird nur dann vom compiler selbstständig erzeugt, wenn du _keinen_ ctor selber definierst.</p>
<p>bei B::B(int) musst du unterscheiden. wenn du den ctor implementierst bezieht es sich auf den member von B. das ist der code &quot;B::B(int a):i(a){}&quot;.<br />
wenn du den aufruf &quot;B::B(1);&quot; schreibst, beziehst du dich auf eine funktion/objekt im namespace B. du hast aber gar keinen namespace B definiert.</p>
<p>damit &quot;B::B(1);&quot; legal wäre,müsstest du so etwas hier schreiben:</p>
<pre><code class="language-cpp">namespace B{
  class B{
  public:
	B(int a):i(a){}
  private:
	int i;
  };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1537356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537356</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Sat, 28 Jun 2008 10:01:44 GMT</pubDate></item><item><title><![CDATA[Reply to constructor im constructor aufrufen on Sat, 28 Jun 2008 11:10:04 GMT]]></title><description><![CDATA[<p>Vielen dank für die Hilfe und Geduld es geht nun alles</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1537410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1537410</guid><dc:creator><![CDATA[Franky_]]></dc:creator><pubDate>Sat, 28 Jun 2008 11:10:04 GMT</pubDate></item></channel></rss>