<?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[Code kompiliert nicht]]></title><description><![CDATA[<p>Hallo Zusammen!</p>
<p>Ich habe ein paar Zeilen C++ Code die einfach nicht übersetzen wollen. Hier der Code (bzw. die wesentlichen Ausschnitte):</p>
<p>cl.hpp</p>
<pre><code class="language-cpp">template &lt;typename classtype&gt; struct object_factory {

	static classtype* new_instance() { return new classtype; }
	static void destroy_instance(classtype* ptr) { delete ptr; }

};

#include &lt;map&gt;
class instantiator {

	public:

		static void addClass(const char* className, void* object_factory_ptr) { std::cout &lt;&lt; &quot;Registriere Klasse '&quot; &lt;&lt; className &lt;&lt; &quot;'...&quot; &lt;&lt; std::endl; object_factory_map.insert(std::pair&lt;const char*, void*&gt;(className, object_factory_ptr)); }

	private:

		static std::map&lt;const char*, void*&gt; object_factory_map;

};
</code></pre>
<p>Child.hpp</p>
<pre><code class="language-cpp">class Child : public AbPar {

	public:

		Child();
		~Child();

		void Who();
		void Where();

};

#include &quot;cl.hpp&quot;
namespace {
	object_factory&lt;Child&gt; *objFac = new object_factory&lt;Child&gt;;
	instantiator::addClass(&quot;Child&quot;, objFac);
}
</code></pre>
<p>Dann gibt es eine Datei Child.cpp die die Child.hpp einbindet. Beim übersetzen kommt dann folgende Ausgabe (die Zeile 22 in der Ausgabe entspricht Zeile 16 im Code hier):</p>
<pre><code>g++ -shared -o Child.so child.cpp
In file included from child.cpp:1:
child.hpp:22: error: expected constructor, destructor, or type conversion before '(' token
child.hpp:22: error: expected `,' or `;' before '(' token
</code></pre>
<p>Ich versteh nicht so recht woran das liegt. Ein Konstruktor braucht es hier doch nirgends geben. In der Klasse instatiator ist doch alles als statisch deklariert.</p>
<p>Seht ihr worans liegt?</p>
<p>Vielen Dank und Grüße,<br />
Maik</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218685/code-kompiliert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 22:13:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218685.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Jul 2008 17:46:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 17:46:05 GMT]]></title><description><![CDATA[<p>Hallo Zusammen!</p>
<p>Ich habe ein paar Zeilen C++ Code die einfach nicht übersetzen wollen. Hier der Code (bzw. die wesentlichen Ausschnitte):</p>
<p>cl.hpp</p>
<pre><code class="language-cpp">template &lt;typename classtype&gt; struct object_factory {

	static classtype* new_instance() { return new classtype; }
	static void destroy_instance(classtype* ptr) { delete ptr; }

};

#include &lt;map&gt;
class instantiator {

	public:

		static void addClass(const char* className, void* object_factory_ptr) { std::cout &lt;&lt; &quot;Registriere Klasse '&quot; &lt;&lt; className &lt;&lt; &quot;'...&quot; &lt;&lt; std::endl; object_factory_map.insert(std::pair&lt;const char*, void*&gt;(className, object_factory_ptr)); }

	private:

		static std::map&lt;const char*, void*&gt; object_factory_map;

};
</code></pre>
<p>Child.hpp</p>
<pre><code class="language-cpp">class Child : public AbPar {

	public:

		Child();
		~Child();

		void Who();
		void Where();

};

#include &quot;cl.hpp&quot;
namespace {
	object_factory&lt;Child&gt; *objFac = new object_factory&lt;Child&gt;;
	instantiator::addClass(&quot;Child&quot;, objFac);
}
</code></pre>
<p>Dann gibt es eine Datei Child.cpp die die Child.hpp einbindet. Beim übersetzen kommt dann folgende Ausgabe (die Zeile 22 in der Ausgabe entspricht Zeile 16 im Code hier):</p>
<pre><code>g++ -shared -o Child.so child.cpp
In file included from child.cpp:1:
child.hpp:22: error: expected constructor, destructor, or type conversion before '(' token
child.hpp:22: error: expected `,' or `;' before '(' token
</code></pre>
<p>Ich versteh nicht so recht woran das liegt. Ein Konstruktor braucht es hier doch nirgends geben. In der Klasse instatiator ist doch alles als statisch deklariert.</p>
<p>Seht ihr worans liegt?</p>
<p>Vielen Dank und Grüße,<br />
Maik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552571</guid><dc:creator><![CDATA[maikg]]></dc:creator><pubDate>Wed, 23 Jul 2008 17:46:05 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 17:51:48 GMT]]></title><description><![CDATA[<p>nach dem namespace fehlt der ;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552574</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Wed, 23 Jul 2008 17:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 18:05:54 GMT]]></title><description><![CDATA[<p>Ich hab das ; hingesetzt, wobei es laut Referenz scheinbar nicht nötig ist. Der Fehler ist aber noch immer der gleiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552584</guid><dc:creator><![CDATA[maikg]]></dc:creator><pubDate>Wed, 23 Jul 2008 18:05:54 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 18:30:59 GMT]]></title><description><![CDATA[<p>wenn die Zeilen der Fehlermeldungen mit deinem Code übereinstimmen würden?!?! 22 gibts ja bei dir ned...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552604</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Wed, 23 Jul 2008 18:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 18:33:02 GMT]]></title><description><![CDATA[<p>Ich hab ja geschrieben, dass Zeile 22 in der Fehlerausgabe Zeile 16 in meinem Auszug entspricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552608</guid><dc:creator><![CDATA[maikg]]></dc:creator><pubDate>Wed, 23 Jul 2008 18:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 18:33:26 GMT]]></title><description><![CDATA[<p>Hi,<br />
was wäre wenn du es so mal versuchen würdest und evtl. static weg nimmst<br />
(tut mir leid wenns falsch ist, bin selbst noch am lernen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">instantiator CInst;  // Objekt erzeugen

   object_factory&lt;Child&gt; *objFac = new object_factory&lt;Child&gt;;
   CInst.addClass(&quot;Child&quot;, objFac);
</code></pre>
<p>lg c4f</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552609</guid><dc:creator><![CDATA[c4f]]></dc:creator><pubDate>Wed, 23 Jul 2008 18:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 18:36:08 GMT]]></title><description><![CDATA[<p>Der Fehler bleibt der gleiche:</p>
<pre><code>g++ -shared -o Child.so child.cpp
In file included from child.cpp:1:
child.hpp:23: error: expected constructor, destructor, or type conversion before '.' token
child.hpp:23: error: expected `,' or `;' before '.' token
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1552611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552611</guid><dc:creator><![CDATA[maikg]]></dc:creator><pubDate>Wed, 23 Jul 2008 18:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to Code kompiliert nicht on Wed, 23 Jul 2008 18:53:35 GMT]]></title><description><![CDATA[<p>Weil du eine funktion (statisch oder nicht) ausserhalb einer Funktion aufrufst? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552619</guid><dc:creator><![CDATA[Pigeon]]></dc:creator><pubDate>Wed, 23 Jul 2008 18:53:35 GMT</pubDate></item></channel></rss>