<?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[[geloest] Frage zu Konstructor]]></title><description><![CDATA[<p>Ich les grad ein C++ Buch und mach da halt so die Beispiele mit. Eines davon sieht so aus:</p>
<pre><code class="language-cpp">struct point
{
        point()
        : x_(0.0), y_(0.0)
        {
                std::cout &lt;&lt; &quot;default constructor&quot; &lt;&lt; std::endl;
        }

        point(double x, double y)
        : x_(x), y_(y)
        {
                std::cout &lt;&lt; &quot;constructor(&quot; &lt;&lt; x &lt;&lt; &quot;, &quot; &lt;&lt; y &lt;&lt; &quot;)&quot; &lt;&lt; std::endl;
        }

        double x_;
        double y_;
};

int main()
{
        point pt(); // &lt;&lt;
        return 0;
}
</code></pre>
<p>Wenn ich das Ding compiliere und ausfuehre passiert gar nichts. Fuer mich halbwegs verstaendlich, weil man ja Konstruktoren nicht direkt aufrufen kann. Der Default-Konstructor von point wird hier also nicht aufgerufen.<br />
Wenn ich jetzt die oben markierte Zeile durch</p>
<pre><code class="language-cpp">point pt;
</code></pre>
<p>ersetze wird der default Konstruktor ausgefuehrt.</p>
<p>Schoen und gut. Die Frage jetzt, was ist nun mit dem pt aus dem Urspruenglichen Beispiel? Offensichtlich ist es nicht vom Typ point - aber welcher dann?<br />
Kann mir das bitte jemand erklaeren?</p>
<p>P.S.: Als kompiler kommt gcc version 4.3.2 zum Einsatz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237362/geloest-frage-zu-konstructor</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 12:37:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237362.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Mar 2009 17:41:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [geloest] Frage zu Konstructor on Fri, 27 Mar 2009 18:46:41 GMT]]></title><description><![CDATA[<p>Ich les grad ein C++ Buch und mach da halt so die Beispiele mit. Eines davon sieht so aus:</p>
<pre><code class="language-cpp">struct point
{
        point()
        : x_(0.0), y_(0.0)
        {
                std::cout &lt;&lt; &quot;default constructor&quot; &lt;&lt; std::endl;
        }

        point(double x, double y)
        : x_(x), y_(y)
        {
                std::cout &lt;&lt; &quot;constructor(&quot; &lt;&lt; x &lt;&lt; &quot;, &quot; &lt;&lt; y &lt;&lt; &quot;)&quot; &lt;&lt; std::endl;
        }

        double x_;
        double y_;
};

int main()
{
        point pt(); // &lt;&lt;
        return 0;
}
</code></pre>
<p>Wenn ich das Ding compiliere und ausfuehre passiert gar nichts. Fuer mich halbwegs verstaendlich, weil man ja Konstruktoren nicht direkt aufrufen kann. Der Default-Konstructor von point wird hier also nicht aufgerufen.<br />
Wenn ich jetzt die oben markierte Zeile durch</p>
<pre><code class="language-cpp">point pt;
</code></pre>
<p>ersetze wird der default Konstruktor ausgefuehrt.</p>
<p>Schoen und gut. Die Frage jetzt, was ist nun mit dem pt aus dem Urspruenglichen Beispiel? Offensichtlich ist es nicht vom Typ point - aber welcher dann?<br />
Kann mir das bitte jemand erklaeren?</p>
<p>P.S.: Als kompiler kommt gcc version 4.3.2 zum Einsatz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1687090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1687090</guid><dc:creator><![CDATA[moe szyslak]]></dc:creator><pubDate>Fri, 27 Mar 2009 18:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to [geloest] Frage zu Konstructor on Fri, 27 Mar 2009 17:45:45 GMT]]></title><description><![CDATA[<pre><code>point pt();
</code></pre>
<p>Deklariert imho eine Funktion namens pt mit Rückgabetyp point und keinen Parametern.</p>
<pre><code>point pt;
</code></pre>
<p>Erzeugt ein Objekt vom Typ point, dabei wird der Konstruktur ausgeführt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1687092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1687092</guid><dc:creator><![CDATA[anonymus]]></dc:creator><pubDate>Fri, 27 Mar 2009 17:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to [geloest] Frage zu Konstructor on Fri, 27 Mar 2009 17:46:39 GMT]]></title><description><![CDATA[<blockquote>
<p>Schoen und gut. Die Frage jetzt, was ist nun mit dem pt aus dem Urspruenglichen Beispiel? Offensichtlich ist es nicht vom Typ point - aber welcher dann?</p>
</blockquote>
<p>Ich schreibs dir mal anders:</p>
<pre><code class="language-cpp">point pt();

int main()
{
// pt();
}

/*das erlaubt der standard auch: auch, wenn iwie niemand so recht weiß, wieso...*/

int main()
{
   point pt();
// pt();
}
</code></pre>
<p>siehst du jz, was es ist? ^^<br />
wenn du die beiden / wegmachst, dann wirst du nen Linker-Fehler bekommen, weil du die Fkt nirgendwo implementiert hast...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1687093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1687093</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 27 Mar 2009 17:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to [geloest] Frage zu Konstructor on Fri, 27 Mar 2009 18:41:30 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<blockquote>
<p>Schoen und gut. Die Frage jetzt, was ist nun mit dem pt aus dem Urspruenglichen Beispiel? Offensichtlich ist es nicht vom Typ point - aber welcher dann?</p>
</blockquote>
<p>Ich schreibs dir mal anders:</p>
<pre><code class="language-cpp">point pt();

int main()
{
// pt();
}

/*das erlaubt der standard auch: auch, wenn iwie niemand so recht weiß, wieso...*/

int main()
{
   point pt();
// pt();
}
</code></pre>
<p>siehst du jz, was es ist? ^^<br />
wenn du die beiden / wegmachst, dann wirst du nen Linker-Fehler bekommen, weil du die Fkt nirgendwo implementiert hast...</p>
<p>bb</p>
</blockquote>
<p>Oh verdammt, wieso hab ich das nicht gesehn. Danke!<br />
Dann ist das eindeutig ein Fehler im Buch, mal schaun ob das schon jemand gemeldet hat.</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1687118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1687118</guid><dc:creator><![CDATA[moe szyslak]]></dc:creator><pubDate>Fri, 27 Mar 2009 18:41:30 GMT</pubDate></item></channel></rss>