<?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 in C++ umsetzen]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin seit kurzem in C++ eingestiegen und möchte gern ein kleinem Java-Programm in C++ konvertieren.<br />
Doch beim Kompilieren bekomme ich aber Fehlermeldung und ich weiß auch nicht, ob ich bei der Portierung richtig gemacht habe.</p>
<p>Ich hoffe einer von euch kann mir helfen.</p>
<p>VG, Manh</p>
<p>Java-Quellcode</p>
<pre><code>import Layer.java;
......

public class Axon 
{

    public Reverse reverse;  
    Layer preLayer=null;
    Layer postLayer=null;

    public Axon(Layer inLayer, Layer outLayer){ 

    }

    public Reverse getReverseAxon()
    { 
        if (reverse==null) {
			reverse=new Reverse(this);
		}

        return reverse;

    }

    public boolean hasReverseAxon()
    { 
        return reverse!=null;
    }

	//class Reverse
    public static class Reverse extends Axon {

        Axon forwardAxon;

        public Reverse(Axon fwdAx){

            super(fwdAx.postLayer,fwdAx.preLayer);

            forwardAxon=fwdAx;
        }
    }
	.......
}
</code></pre>
<p>Quelltext für testAxon.h datei</p>
<pre><code>#ifndef SNN_TESTAXON_H 
#define SNN_TESTAXON_H 

class testReverse; // forward declaration 
class testAxon {

	public:
		testAxon(...){};   
		~testAxon(){};  

		testReverse* getReverseAxon() {
		    if (rev == nullptr) {
			testAxon* ax;
			rev = &amp;testReverse(this);  // error C2440: '&lt;function-style-cast&gt;': 'snn::testAxon *const ' kann nicht in 'snn::testReverse' konvertiert werden	
		    }
		    return rev;
		};

	       bool hasReverse(){
	          return rev != nullptr;
	       };

	       testReverse* rev;

};	// end class

#endif //SNN_TESTAXON_H 

/////// test in main.cpp

vector&lt;testAxon*&gt; axons;

testAxon* addReverseAxon(testAxon* fwdAx){		
	//check forwards axon has reverse axon or axons contains(fwdAx-&gt;reverse)
	if (fwdAx-&gt;hasReverseAxon() &amp;&amp; (find(axons.begin(), axons.end(), fwdAx-&gt;rev) != axons.end()) ){
		cout &lt;&lt; &quot;Warning: Axon: has already been added.  Doing nothing.&quot;);
		return fwdAx-&gt;getReverseAxon();
	}
      testAxon* ax = fwdAx-&gt;getReverseAxon();
	axons.add(ax);  

	return ax;
}
........
</code></pre>
<p>Quelltext für testReverse.h datei</p>
<pre><code>#ifndef SNN_TESTREVERSE_H 
#define SNN_TESTREVERSE_H 

#include &quot;testAxon.h&quot;

class testReverse : public testAxon {
	public:
		testAxon* forwardAxon_;

		testReverse(){};   
		testReverse(testAxon* fwdAx)  {
			testAxon(...); 
			forwardAxon_ = fwdAx;
		};

		~testReverse(){};

};	// end class 

#endif //SNN_TESTREVERSE_H
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/337948/java-in-c-umsetzen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 16:44:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337948.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 May 2016 09:37:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Java in C++ umsetzen on Thu, 12 May 2016 09:37:30 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin seit kurzem in C++ eingestiegen und möchte gern ein kleinem Java-Programm in C++ konvertieren.<br />
Doch beim Kompilieren bekomme ich aber Fehlermeldung und ich weiß auch nicht, ob ich bei der Portierung richtig gemacht habe.</p>
<p>Ich hoffe einer von euch kann mir helfen.</p>
<p>VG, Manh</p>
<p>Java-Quellcode</p>
<pre><code>import Layer.java;
......

public class Axon 
{

    public Reverse reverse;  
    Layer preLayer=null;
    Layer postLayer=null;

    public Axon(Layer inLayer, Layer outLayer){ 

    }

    public Reverse getReverseAxon()
    { 
        if (reverse==null) {
			reverse=new Reverse(this);
		}

        return reverse;

    }

    public boolean hasReverseAxon()
    { 
        return reverse!=null;
    }

	//class Reverse
    public static class Reverse extends Axon {

        Axon forwardAxon;

        public Reverse(Axon fwdAx){

            super(fwdAx.postLayer,fwdAx.preLayer);

            forwardAxon=fwdAx;
        }
    }
	.......
}
</code></pre>
<p>Quelltext für testAxon.h datei</p>
<pre><code>#ifndef SNN_TESTAXON_H 
#define SNN_TESTAXON_H 

class testReverse; // forward declaration 
class testAxon {

	public:
		testAxon(...){};   
		~testAxon(){};  

		testReverse* getReverseAxon() {
		    if (rev == nullptr) {
			testAxon* ax;
			rev = &amp;testReverse(this);  // error C2440: '&lt;function-style-cast&gt;': 'snn::testAxon *const ' kann nicht in 'snn::testReverse' konvertiert werden	
		    }
		    return rev;
		};

	       bool hasReverse(){
	          return rev != nullptr;
	       };

	       testReverse* rev;

};	// end class

#endif //SNN_TESTAXON_H 

/////// test in main.cpp

vector&lt;testAxon*&gt; axons;

testAxon* addReverseAxon(testAxon* fwdAx){		
	//check forwards axon has reverse axon or axons contains(fwdAx-&gt;reverse)
	if (fwdAx-&gt;hasReverseAxon() &amp;&amp; (find(axons.begin(), axons.end(), fwdAx-&gt;rev) != axons.end()) ){
		cout &lt;&lt; &quot;Warning: Axon: has already been added.  Doing nothing.&quot;);
		return fwdAx-&gt;getReverseAxon();
	}
      testAxon* ax = fwdAx-&gt;getReverseAxon();
	axons.add(ax);  

	return ax;
}
........
</code></pre>
<p>Quelltext für testReverse.h datei</p>
<pre><code>#ifndef SNN_TESTREVERSE_H 
#define SNN_TESTREVERSE_H 

#include &quot;testAxon.h&quot;

class testReverse : public testAxon {
	public:
		testAxon* forwardAxon_;

		testReverse(){};   
		testReverse(testAxon* fwdAx)  {
			testAxon(...); 
			forwardAxon_ = fwdAx;
		};

		~testReverse(){};

};	// end class 

#endif //SNN_TESTREVERSE_H
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2495587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495587</guid><dc:creator><![CDATA[manh]]></dc:creator><pubDate>Thu, 12 May 2016 09:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Java in C++ umsetzen on Thu, 12 May 2016 09:47:38 GMT]]></title><description><![CDATA[<p>Tja, das ist wohl eine blöde Idee.</p>
<p>Was an der Fehlermeldung überrascht dich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495589</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 12 May 2016 09:47:38 GMT</pubDate></item><item><title><![CDATA[Reply to Java in C++ umsetzen on Thu, 12 May 2016 09:59:43 GMT]]></title><description><![CDATA[<p>Übersetzung von technischen Details (Hier zum Beispiel: Wie genau die Ressourcenverwaltung gehandhabt wird.) ist eigentlich nie eine gute Idee. Dazu sind die beiden Sprachen zu verschieden. Du solltest dich lieber darauf beschränken, nur die Datenstrukturen¹ und Algorithmen zu übernehmen. Das ist es, worauf es ankommt. Tappe nicht in die Falle, C++ wie Java programmieren zu wollen (oder umgekehrt). Das funktioniert einfach nicht.</p>
<p>¹: Damit sind auch <strong>nicht</strong> die technischen Details gemeint. Also nicht, was ein Zeiger/Liste/Vector usw. ist, sondern allgemeine Betrachtungen zu den Klassen, die es gibt; welche Daten diese halten; welche Zuständigkeiten sie haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495591</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 12 May 2016 09:59:43 GMT</pubDate></item><item><title><![CDATA[Reply to Java in C++ umsetzen on Thu, 12 May 2016 11:54:47 GMT]]></title><description><![CDATA[<p>Hier:</p>
<pre><code>rev = &amp;testReverse(this);
</code></pre>
<p>Du hast testReverse nur als class deklariert. Dann kannst du das Ding nur als Pointer oder Referenz nutzen, nicht anders; insbesondere kannst du kein Objekt davon anlegen. Da der Compiler den Konstruktor nicht kennt, ist testReserve(x) also hier als Typecast erkannt worden: casten von this nach testReserve. Und das geht nicht.</p>
<p>Außerdem scheinst du hier ein temporäres Objekt zu erstellen und davon die Referenz nehmen zu wollen. Das kann so sowieso nicht gehen.</p>
<p>Und wenn du es den testReverse-Header includen würdest und <code>rev=new testReserve(this)</code> schreiben würdest, hättest du ein Speicherleck.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495600</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Thu, 12 May 2016 11:54:47 GMT</pubDate></item></channel></rss>