<?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[Konstruktorfrage]]></title><description><![CDATA[<p>Hay<br />
Mir geht einfach nicht in den Kopf warum:</p>
<pre><code class="language-cpp">class Test
{
     private:
              int i;
              char c[20];
     public:
     Test::Test(int x)
      {
       i = x;
      strncpy(c,&quot;Keine Eingabe&quot;,sizeof(c)-1);
      }
     // [...]
  }t1,t2;

int main()
{

    t1.print();
    t2(2); // Stünde hier Test t2(2) lässt es sich kompilieren. Aber warum?
    t2.print();
  // [...]
return 0;
}
</code></pre>
<p>Das liefert für t1 die richtigen, durch den Standartkonstruktor initialisierten, Werte.<br />
Bei t2 krieg ich allerdings die Meldung: no match for call to '(test) (int)'</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256885/konstruktorfrage</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 23:29:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256885.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Dec 2009 10:38:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktorfrage on Sat, 19 Dec 2009 10:38:12 GMT]]></title><description><![CDATA[<p>Hay<br />
Mir geht einfach nicht in den Kopf warum:</p>
<pre><code class="language-cpp">class Test
{
     private:
              int i;
              char c[20];
     public:
     Test::Test(int x)
      {
       i = x;
      strncpy(c,&quot;Keine Eingabe&quot;,sizeof(c)-1);
      }
     // [...]
  }t1,t2;

int main()
{

    t1.print();
    t2(2); // Stünde hier Test t2(2) lässt es sich kompilieren. Aber warum?
    t2.print();
  // [...]
return 0;
}
</code></pre>
<p>Das liefert für t1 die richtigen, durch den Standartkonstruktor initialisierten, Werte.<br />
Bei t2 krieg ich allerdings die Meldung: no match for call to '(test) (int)'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824893</guid><dc:creator><![CDATA[Undefined_cl]]></dc:creator><pubDate>Sat, 19 Dec 2009 10:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorfrage on Sat, 19 Dec 2009 11:16:57 GMT]]></title><description><![CDATA[<p>Falsches Forum: hier ist C+/CLI, eine .NET Sprache.<br />
Korrekt wäre: C++</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824903</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 19 Dec 2009 11:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorfrage on Sat, 19 Dec 2009 11:22:07 GMT]]></title><description><![CDATA[<p>Dein Code kompiliert nicht, weil kein Konstruktor ohne Argumente zur Verfügung steht, Du ein solcher aber durch die Variablen t1 und t2 benötigst.</p>
<p>Du musst deine Objekte mit einem der zur Verfügung stehenden Konstruktoren initialisieren:</p>
<pre><code class="language-cpp">class Test
{
public:
   Test(int x) { /* .. */ }
} t1(0), t2(1);
</code></pre>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824904</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 19 Dec 2009 11:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorfrage on Sat, 19 Dec 2009 14:04:57 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-18363.html" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824964</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 19 Dec 2009 14:04:57 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorfrage on Sat, 19 Dec 2009 16:56:15 GMT]]></title><description><![CDATA[<p>Ich nehme mal an, du hast auch einen Standardkonstruktor, d.h.</p>
<pre><code class="language-cpp">class Test
{
public:
  Test() {}

  // ...

} t1, t2;
</code></pre>
<p>Nun sind t1 und t2 also schon konstruiert, d.h. du kannst dann nicht nocheinmal einen anderen Konstruktor mittels &quot;t2(2);&quot; aufrufen.<br />
Und &quot;Test t2(2);&quot; klappt, weil du dann zusätzlich eine lokale Variable gleichen Namens erzeugst.</p>
<p>Wenn du Objekte dynamisch erzeugen willst, dann müßtest du Zeiger verwenden, z.B.</p>
<pre><code class="language-cpp">Test *pTest;

// irgendwann später im Programm

pTest = new Test(42);

...

// unterhalb oder noch irgendwo anders

delete pTest;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1825040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825040</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 19 Dec 2009 16:56:15 GMT</pubDate></item></channel></rss>