<?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[Java Code in C++ überführen]]></title><description><![CDATA[<p>Wie sähe folgender Java-Code in C++ aus?</p>
<pre><code class="language-java">import java.util.LinkedList;

abstract class A {
  public abstract void test();
}

class Main {

  public static void main(String[] args) {
    LinkedList&lt;A&gt; list = new LinkedList&lt;A&gt;();

    list.add(new A() {
      <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17722">@Override</a>
      public void test() {
        System.out.println(&quot;foo&quot;);
      }
    });
  }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/235849/java-code-in-c-überführen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 04:48:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235849.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Mar 2009 11:08:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 11:11:29 GMT]]></title><description><![CDATA[<p>Wie sähe folgender Java-Code in C++ aus?</p>
<pre><code class="language-java">import java.util.LinkedList;

abstract class A {
  public abstract void test();
}

class Main {

  public static void main(String[] args) {
    LinkedList&lt;A&gt; list = new LinkedList&lt;A&gt;();

    list.add(new A() {
      <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17722">@Override</a>
      public void test() {
        System.out.println(&quot;foo&quot;);
      }
    });
  }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1675627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675627</guid><dc:creator><![CDATA[Ravendark]]></dc:creator><pubDate>Sat, 07 Mar 2009 11:11:29 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 11:57:05 GMT]]></title><description><![CDATA[<p>Ravendark schrieb:</p>
<blockquote>
<p>Wie sähe folgender Java-Code in C++ aus?</p>
</blockquote>
<p>Anders.<br />
Zeig uns doch mal was du schon hast. Fertig gebackene Lösungen wirst du hier nicht bekommen wenn du keine Eigeninitiative zeigst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675644</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 07 Mar 2009 11:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 11:59:30 GMT]]></title><description><![CDATA[<p>geht mit c++ nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675646</guid><dc:creator><![CDATA[möööööööp]]></dc:creator><pubDate>Sat, 07 Mar 2009 11:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 12:02:24 GMT]]></title><description><![CDATA[<p>möööööööp schrieb:</p>
<blockquote>
<p>geht mit c++ nicht</p>
</blockquote>
<p>Doch schon. Nur komplizierter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675650</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 07 Mar 2009 12:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 12:24:46 GMT]]></title><description><![CDATA[<pre><code>list.add(new A() {
      @Override
      public void test() {
        System.out.println(&quot;foo&quot;);
</code></pre>
<p>Weisst du was hier im Hintergrund passiert? Es wird eine neue (unbenannte) Klasse definiert, in der die abstrakte Methode ueberschrieben wird. Und dann wird ein Object davon erzeugt. Unbenannte Klassen gibt es in C++ nicht, also musst du dir eine neue abgeleitet Klasse a la DummyA definieren und eine Instanz dieser benutzen.</p>
<p>Abstrakte Methoden werden mit &quot;pure virtual member function&quot;s in C++ realisiert und deine Liste wird wohl nur A* als Templateparameter enthalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675656</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 07 Mar 2009 12:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 12:34:33 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>möööööööp schrieb:</p>
<blockquote>
<p>geht mit c++ nicht</p>
</blockquote>
<p>Doch schon. Nur komplizierter...</p>
</blockquote>
<p>sag ich doch geht nicht. Natürlich kann man was kompliziertes bauen was sich so ähnlich verhält, aber das ist halt nicht das gleiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675660</guid><dc:creator><![CDATA[möööööööp]]></dc:creator><pubDate>Sat, 07 Mar 2009 12:34:33 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 12:50:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;list&gt;

struct a
{
    ~a(){}
    virtual void operator() () = 0;
};

int main ()
{
    std::list&lt;a*&gt; l;

    {
        struct b : a
        {
            void operator () ()
            {
                std::cout &lt;&lt; &quot;foo&quot; &lt;&lt; std::endl;
            }
        };

        l.push_back ( new b );

        struct c : a
        {
            void operator () ()
            {
                std::cout &lt;&lt; &quot;bar&quot; &lt;&lt; std::endl;
            }
        };

        l.push_back ( new c );
    }

    //b b_; //geht nicht (anonym)
    //c c_; //auch nicht (anonym)

    struct c {}; //geht hier

    for (std::list&lt;a*&gt;::iterator it = l.begin(); it != l.end (); ++it)
        (**it) ();

    for (std::list&lt;a*&gt;::iterator it = l.begin(); it != l.end (); ++it)
        delete *it;
}
</code></pre>
<p>Das ist etwa das, was man in C++ machen kann. (Zumindest im Moment. Es werden halt noch keine anonymen Funktionen unterstützt, aber man kann das auch mittels Scopes regeln.)<br />
Was daran so kompliziert sein soll weiss ich nicht. Es ist nicht üblich, aber es könnte halt schon eine Verwendung finden.</p>
<p>Beachte, dass in C++ new eine etwas andere Bedeutung hat, wie in Java. (manuelle Speicherverwaltung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675670</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 12:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 12:52:39 GMT]]></title><description><![CDATA[<p>möööööööp schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>möööööööp schrieb:</p>
<blockquote>
<p>geht mit c++ nicht</p>
</blockquote>
<p>Doch schon. Nur komplizierter...</p>
</blockquote>
<p>sag ich doch geht nicht. Natürlich kann man was kompliziertes bauen was sich so ähnlich verhält, aber das ist halt nicht das gleiche.</p>
</blockquote>
<p>Kruemelkacker! Ne, das gleiche sowieso nicht, das eine ist Java und das andere ist C++. Wenn ich einen englischen Text ins Deutsche uebersetze, dann ist es auch nicht mehr das gleiche. Und wesentlich komplizierter ist das vorgeschlagene auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675673</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 07 Mar 2009 12:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 13:13:26 GMT]]></title><description><![CDATA[<blockquote>
<p>Weisst du was hier im Hintergrund passiert? Es wird eine neue (unbenannte) Klasse definiert, in der die abstrakte Methode ueberschrieben wird. Und dann wird ein Object davon erzeugt. Unbenannte Klassen gibt es in C++ nicht, also musst du dir eine neue abgeleitet Klasse a la DummyA definieren und eine Instanz dieser benutzen.</p>
</blockquote>
<p>Also in Java bin ich relativ gut eingearbeitet, kenne mich also mit anonymen Klassen usw. ganz gut aus.</p>
<p>Wollte eigentlich nur wissen ob es anonyme Klassen in C++ gibt...anscheinend ja nicht.</p>
<p>Thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675686</guid><dc:creator><![CDATA[Ravendark]]></dc:creator><pubDate>Sat, 07 Mar 2009 13:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 13:17:59 GMT]]></title><description><![CDATA[<p>Ravendark schrieb:</p>
<blockquote>
<p>Wollte eigentlich nur wissen ob es anonyme Klassen in C++ gibt</p>
</blockquote>
<p>Diese Frage hat mit dem ersten Post kaum was zu tun. Also wieder Zeit verschwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675689</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 07 Mar 2009 13:17:59 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 13:17:56 GMT]]></title><description><![CDATA[<p>Ravendark schrieb:</p>
<blockquote>
<p>Wollte eigentlich nur wissen ob es anonyme Klassen in C++ gibt...anscheinend ja nicht.</p>
</blockquote>
<p>Doch, die gibt es. Aber meistens machen die nicht sehr viel Sinn.</p>
<pre><code class="language-cpp">class Anonymous
{

} Object;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1675690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675690</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 07 Mar 2009 13:17:56 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 13:24:32 GMT]]></title><description><![CDATA[<p>Ravendark schrieb:</p>
<blockquote>
<p>Wollte eigentlich nur wissen ob es anonyme Klassen in C++ gibt...anscheinend ja nicht.</p>
</blockquote>
<p>Wieso fragst du das dann nicht gleich? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Nein, wie schon gesagt wurde, anonyme Klassen gibt es <strong>in der Art</strong> nicht in C++. Allerdings braucht man sowas in C++ auch nicht, da man ganz andere Lösungsmittel dafür hat. Zum Beispiel könnte man hier Boost.Function erwähnen, bzw. im nächsten Standard wird das Zeug auch dabei sein. Und wenn wir vom nächsten Standard reden, könnte man auch gleich die Lambda Expressions erwähnen, welche man zum Teil bereits in Boost auch schon vorfindet.</p>
<p>So ein Vergleich ist eher unsinnig. Die beiden Sprachen sind nunmal verschieden und man löst die Probleme auf andere Weise.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>,<br />
Du meinst wohl eher das folgende:</p>
<pre><code class="language-cpp">class
{
} Object;
</code></pre>
<p>Sonst hätte die Klasse schliesslich einen Namen und wäre nicht mehr anonym.</p>
<p>Einsatzzweck für sowas kenne ich bisher übrigens nur den <code>nullptr</code> :<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-220511.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-220511.html</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675692</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 07 Mar 2009 13:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to Java Code in C++ überführen on Sat, 07 Mar 2009 13:26:56 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>,<br />
Du meinst wohl eher das folgende:</p>
</blockquote>
<p>Natürlich, da hab ich zu wenig überlegt... Danke. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675695</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 07 Mar 2009 13:26:56 GMT</pubDate></item></channel></rss>