<?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[[solved]Template Definition Fehlermeldungen]]></title><description><![CDATA[<p>Edit 2: Hab den Fehler selbst gefunden, myPQueue wurde in den verschiedenen Dateien des Programms insgesamt doppelt mit #include aufgerufen... daher die Fehler...</p>
<p>Hallo!</p>
<p>Versuche hier ein Template für eine Priority-Queue(die ich später für Dijkstra brauche) zu schreiben. 2 Methoden sind noch nicht fertig geschrieben, aber das sollte eigentlich erstmal auch ohne kompilieren, tut es aber leider nicht.<br />
Es werden auch Sachen von der Boost Graph Library gebraucht, aber der Fehler dürfte damit eigentlich nichts zu tun haben. Hier erstmal der Quellcode:</p>
<pre><code class="language-cpp">template&lt;class Graph, class Vertex&gt; class myPQueue{
	std::vector&lt;Vertex&gt; vec;
	int size;

public:

	//Konstruktor
	myPQueue(Graph&amp; g, Vertex&amp; s){
		using namespace boost;
		size=num_vertices(g);
		vec.reserve(size); //Speicher für alle Elemente reservieren
		typedef typename graph_traits&lt;G&gt;::vertex_iterator vertex_iter_t;	
		vertex_iter_t v,vend;
		tie(v,vend) = vertices(g);
		int i=0;
		for (tie(v,vend) = vertices(g); v != vend; ++v) {
			put(vertex_distance, g, *v, std::numeric_limits&lt;int&gt;::infinity() );//initialisiere Distanzen mit unendlich
			put(vertex_ind, g, *v, i);//speicher Position auf Knoten
			vec.push_back(*v);
			i++;
		}
		decrease_key(s,0);//Distanz von s auf 0 setzen und s damit an erste Stelle setzen
	}//Konstruktor Ende
	bool isEmpty();
	void decrease_key(Graph&amp; , Vertex&amp;, int );
	Vertex&amp; deleteMin(Graph&amp; );
};

template&lt;class Graph, class Vertex&gt;bool myPQueue&lt;Graph, Vertex&gt;::isEmpty(){

	if(size==0)
		return true;
	else return false;
}

template&lt;class Graph, class Vertex&gt; void myPQueue&lt;Graph, Vertex&gt;::decrease_key( Graph&amp; g, Vertex&amp; v, int x){

}

template&lt;class Graph, class Vertex&gt; Vertex&amp; myPQueue&lt;Graph, Vertex&gt;::deleteMin(Graph&amp; g){

}
</code></pre>
<p>und hier dann die Fehlermeldungen(hab erst gedacht es fehlt ne Klammer, aber das ist es nicht. Scheint aber 4 mal der gleiche Fehler oder ein Folgefehler zu sein):</p>
<pre><code>1&gt;------ Build started: Project: prog, Configuration: Debug Win32 ------
1&gt;Compiling...
1&gt;prog.cpp
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(31) : error C2953:
 'myPQueue' : class template has already been defined
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(31) : 
see declaration of 'myPQueue'
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(39) : error C2244: 
'myPQueue&lt;Graph,Vertex&gt;::isEmpty' : unable to match function definition to an existing declaration
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(28) : 
see declaration of 'myPQueue&lt;Graph,Vertex&gt;::isEmpty'
1&gt;        definition
1&gt;        'bool myPQueue::isEmpty(void)'
1&gt;        existing declarations
1&gt;        'bool myPQueue&lt;Graph,Vertex&gt;::isEmpty(void)'
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(44) : error C2244:
 'myPQueue&lt;Graph,Vertex&gt;::decrease_key' : unable to match function definition to an existing declaration
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(29) : 
see declaration of 'myPQueue&lt;Graph,Vertex&gt;::decrease_key'
1&gt;        definition
1&gt;        'void myPQueue::decrease_key(Graph &amp;,Vertex &amp;,int)'
1&gt;        existing declarations
1&gt;        'void myPQueue&lt;Graph,Vertex&gt;::decrease_key(Graph &amp;,Vertex &amp;,int)'
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(48) : error C2244:
 'myPQueue&lt;Graph,Vertex&gt;::deleteMin' : unable to match function definition to an existing declaration
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(30) : 
see declaration of 'myPQueue&lt;Graph,Vertex&gt;::deleteMin'
1&gt;        definition
1&gt;        'Vertex &amp;myPQueue::deleteMin(Graph &amp;)'
1&gt;        existing declarations
1&gt;        'Vertex &amp;myPQueue&lt;Graph,Vertex&gt;::deleteMin(Graph &amp;)'
1&gt;Build log was saved at &quot;file://c:\Dokumente und Einstellungen\Momo\Eigene Dateien\Visual Studio 2005\Projects\
prog\prog\Debug\BuildLog.htm&quot;
1&gt;prog - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
</code></pre>
<p>Dank an alle, die es sich zumindest anschauen. <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>
<p>Edit: jetzt sind die Fehlermeldungen besser zu lesen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214621/solved-template-definition-fehlermeldungen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 10:36:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214621.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Jun 2008 02:59:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [solved]Template Definition Fehlermeldungen on Sun, 01 Jun 2008 03:46:33 GMT]]></title><description><![CDATA[<p>Edit 2: Hab den Fehler selbst gefunden, myPQueue wurde in den verschiedenen Dateien des Programms insgesamt doppelt mit #include aufgerufen... daher die Fehler...</p>
<p>Hallo!</p>
<p>Versuche hier ein Template für eine Priority-Queue(die ich später für Dijkstra brauche) zu schreiben. 2 Methoden sind noch nicht fertig geschrieben, aber das sollte eigentlich erstmal auch ohne kompilieren, tut es aber leider nicht.<br />
Es werden auch Sachen von der Boost Graph Library gebraucht, aber der Fehler dürfte damit eigentlich nichts zu tun haben. Hier erstmal der Quellcode:</p>
<pre><code class="language-cpp">template&lt;class Graph, class Vertex&gt; class myPQueue{
	std::vector&lt;Vertex&gt; vec;
	int size;

public:

	//Konstruktor
	myPQueue(Graph&amp; g, Vertex&amp; s){
		using namespace boost;
		size=num_vertices(g);
		vec.reserve(size); //Speicher für alle Elemente reservieren
		typedef typename graph_traits&lt;G&gt;::vertex_iterator vertex_iter_t;	
		vertex_iter_t v,vend;
		tie(v,vend) = vertices(g);
		int i=0;
		for (tie(v,vend) = vertices(g); v != vend; ++v) {
			put(vertex_distance, g, *v, std::numeric_limits&lt;int&gt;::infinity() );//initialisiere Distanzen mit unendlich
			put(vertex_ind, g, *v, i);//speicher Position auf Knoten
			vec.push_back(*v);
			i++;
		}
		decrease_key(s,0);//Distanz von s auf 0 setzen und s damit an erste Stelle setzen
	}//Konstruktor Ende
	bool isEmpty();
	void decrease_key(Graph&amp; , Vertex&amp;, int );
	Vertex&amp; deleteMin(Graph&amp; );
};

template&lt;class Graph, class Vertex&gt;bool myPQueue&lt;Graph, Vertex&gt;::isEmpty(){

	if(size==0)
		return true;
	else return false;
}

template&lt;class Graph, class Vertex&gt; void myPQueue&lt;Graph, Vertex&gt;::decrease_key( Graph&amp; g, Vertex&amp; v, int x){

}

template&lt;class Graph, class Vertex&gt; Vertex&amp; myPQueue&lt;Graph, Vertex&gt;::deleteMin(Graph&amp; g){

}
</code></pre>
<p>und hier dann die Fehlermeldungen(hab erst gedacht es fehlt ne Klammer, aber das ist es nicht. Scheint aber 4 mal der gleiche Fehler oder ein Folgefehler zu sein):</p>
<pre><code>1&gt;------ Build started: Project: prog, Configuration: Debug Win32 ------
1&gt;Compiling...
1&gt;prog.cpp
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(31) : error C2953:
 'myPQueue' : class template has already been defined
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(31) : 
see declaration of 'myPQueue'
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(39) : error C2244: 
'myPQueue&lt;Graph,Vertex&gt;::isEmpty' : unable to match function definition to an existing declaration
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(28) : 
see declaration of 'myPQueue&lt;Graph,Vertex&gt;::isEmpty'
1&gt;        definition
1&gt;        'bool myPQueue::isEmpty(void)'
1&gt;        existing declarations
1&gt;        'bool myPQueue&lt;Graph,Vertex&gt;::isEmpty(void)'
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(44) : error C2244:
 'myPQueue&lt;Graph,Vertex&gt;::decrease_key' : unable to match function definition to an existing declaration
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(29) : 
see declaration of 'myPQueue&lt;Graph,Vertex&gt;::decrease_key'
1&gt;        definition
1&gt;        'void myPQueue::decrease_key(Graph &amp;,Vertex &amp;,int)'
1&gt;        existing declarations
1&gt;        'void myPQueue&lt;Graph,Vertex&gt;::decrease_key(Graph &amp;,Vertex &amp;,int)'
1&gt;c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(48) : error C2244:
 'myPQueue&lt;Graph,Vertex&gt;::deleteMin' : unable to match function definition to an existing declaration
1&gt;        c:\dokumente und einstellungen\momo\eigene dateien\visual studio 2005\projects\prog\prog\mypqueue.h(30) : 
see declaration of 'myPQueue&lt;Graph,Vertex&gt;::deleteMin'
1&gt;        definition
1&gt;        'Vertex &amp;myPQueue::deleteMin(Graph &amp;)'
1&gt;        existing declarations
1&gt;        'Vertex &amp;myPQueue&lt;Graph,Vertex&gt;::deleteMin(Graph &amp;)'
1&gt;Build log was saved at &quot;file://c:\Dokumente und Einstellungen\Momo\Eigene Dateien\Visual Studio 2005\Projects\
prog\prog\Debug\BuildLog.htm&quot;
1&gt;prog - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
</code></pre>
<p>Dank an alle, die es sich zumindest anschauen. <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>
<p>Edit: jetzt sind die Fehlermeldungen besser zu lesen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1520421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1520421</guid><dc:creator><![CDATA[suiram]]></dc:creator><pubDate>Sun, 01 Jun 2008 03:46:33 GMT</pubDate></item></channel></rss>