<?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[Klasse in main]]></title><description><![CDATA[<p>Darf man keine Klasse in der main deklarieren?<br />
Oder warum geht das hier nicht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    class foo
    {
        public:
        foo(int a);

    };

    foo::foo(int a)
    {
        std::cout &lt;&lt; a &lt;&lt; &quot;\n&quot;;
    }

    return 0;
}
</code></pre>
<p>main.cpp:12: error: expected primary-expression before '(' token<br />
main.cpp:12: error: expected primary-expression before &quot;int&quot;<br />
main.cpp:13: error: expected `;' before '{' token</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204990/klasse-in-main</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 20:26:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204990.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Feb 2008 01:35:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse in main on Sat, 09 Feb 2008 01:35:28 GMT]]></title><description><![CDATA[<p>Darf man keine Klasse in der main deklarieren?<br />
Oder warum geht das hier nicht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    class foo
    {
        public:
        foo(int a);

    };

    foo::foo(int a)
    {
        std::cout &lt;&lt; a &lt;&lt; &quot;\n&quot;;
    }

    return 0;
}
</code></pre>
<p>main.cpp:12: error: expected primary-expression before '(' token<br />
main.cpp:12: error: expected primary-expression before &quot;int&quot;<br />
main.cpp:13: error: expected `;' before '{' token</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452368</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 09 Feb 2008 01:35:28 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse in main on Sat, 09 Feb 2008 02:08:52 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Darf man keine Klasse in der main deklarieren?</p>
</blockquote>
<p>Doch man darf, allerdings unterliegen lokale Klassen bestimmten Beschränkungen, unter Anderem müssen alle Memberfunktionen inline in der Klassendefinition definiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452369</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 09 Feb 2008 02:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse in main on Sat, 09 Feb 2008 02:13:06 GMT]]></title><description><![CDATA[<p>// Müll....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452370</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Sat, 09 Feb 2008 02:13:06 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse in main on Sat, 09 Feb 2008 11:58:06 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Doch man darf, allerdings unterliegen lokale Klassen bestimmten Beschränkungen, unter Anderem müssen alle Memberfunktionen inline in der Klassendefinition definiert werden.</p>
</blockquote>
<p>Gibt es als noch mehr Regeln für Klassen in der &quot;main&quot;?</p>
<p>Vellas schrieb:</p>
<blockquote>
<p>// Müll....</p>
</blockquote>
<p>????</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452462</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 09 Feb 2008 11:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse in main on Sat, 09 Feb 2008 13:42:11 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Darf man keine Klasse in der main deklarieren?<br />
Oder warum geht das hier nicht:</p>
</blockquote>
<p>1. Was soll der Sinn sein? (Zumal du sie dort nicht verwendest)<br />
2. Du darfst in einer Definition nicht die üblichen Deklarationsbedingungen erwarten. Wenn du schon Funktionslokal eine Klasse deklarieren willst:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    // &lt;-- Denk daran das du HIER in einer Definition von main() bist
    //   Daher muss die Klasse auch komplett als einheit Deklariert/Definiert
    //   werden.
    class foo
    {
      public:
        foo(int a)
        {
          std::cout &lt;&lt; a &lt;&lt; &quot;\n&quot;;
        }
    };

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1452514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452514</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sat, 09 Feb 2008 13:42:11 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse in main on Sat, 09 Feb 2008 13:49:52 GMT]]></title><description><![CDATA[<p>Die wichtigsten Einschränkungen sind:<br />
- Deklarationen in der lokalen Klassen, können Namen des umschließenden Namensraumes so benutzen, wie es die umschließende Funktion tut. Namen der umschließenden Funktion können nur benutzt werden, wenn es sich um Typen, statische oder externe Variables oder Funktionen oder Aufzählungen handelt.<br />
Oder einfacher negativ, man hat keine Zugriff auf automatische Variablen oder Labels. Die Memberfunktionen einer lokalen Klasse sind also nicht echt verschachtelt wie man das aus anderen Sprachen kennt, wo man in der verschachtelten Klasse Zugriff auf den gesamten Stackrahmen des Aufrufers hat.<br />
- lokale Klassen können keine Templateargumente sein<br />
- alle Memberfunktionen müssen, wenn überhaupt, inline in der Klassendefinition definiert werden<br />
- lokale Klassen können keine statischen Datenmember haben<br />
- eine in der lokalen Klasse X deklarierte Klasse Y ist ebenfalls lokal, sie kann in nerhalb der Definition von X definiert werden oder später innerhalb der Funktion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452516</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 09 Feb 2008 13:49:52 GMT</pubDate></item></channel></rss>