<?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[Problem bei overload function]]></title><description><![CDATA[<p>Huhu,</p>
<p>Ich habe da ein kleines Problem und komme nicht weiter...</p>
<p>Vorab: Gegooglet hab ich schon und hier im Forum finde ich auch kein vergleichbares Problem...</p>
<p>Zum Problem:</p>
<p>Ich habe eine Klasse geschrieben (eine dynamische Liste um genau zu sein).<br />
In dieser Klasse gibt es 2 Funktionen mit dem selben Namen und Rückgabewert, aber verschiedenen Parametern (overloaded halt)</p>
<p>Bis dato sieht die Headerdatei so aus:<br />
(unwichtiges auskommentiert)</p>
<pre><code>#pragma once

#include &quot;BounceElement.h&quot;

struct ElementListKnot
{
	//Attribute
};

class ElementList
{
public:
	ElementList(void);
	~ElementList(void);
	//weitere Funktionen
	void remove(BounceElement *eleToRemove);
	void remove(int index);
//private Attribute
};
</code></pre>
<p>Es geht hier um die Methode remove, die einmal einen int und einmal einen Pointer zu einem BounceElement als parameter benutzt.</p>
<p>In der .cpp Datei werden diese Methoden auch deklariert:</p>
<pre><code>void ElementList::remove(int index)
{
	//Funktionskörper
}

void ElementList::remove(BounceElement *eleToRemove)
{
	//Funktionskörper
}
</code></pre>
<p>So weit so gut, kompiliere ich die ElementList.cpp Datei gibt er keinen Fehler aus!</p>
<p>Nun will ich diese Klasse in einer Testklasse testen.</p>
<p>Diese sieht wie folgt aus (unwichtiges natürlich wieder auskommentiert):</p>
<pre><code>#include &quot;Main.h&quot;

Main::Main(void)
{
}

Main::~Main(void)
{
}

int Main::main()
{
	BounceElement ele1(1, 2, 3);
	BounceElement ele2(2,3,4);
	BounceElement ele3(3,4,5);
	BounceElement ele4(4,5,6);
	BounceElement ele5(5,6,7);
	BounceElement ele6(6,7,8);
	ElementList list;
        //ele1 bis ele6 werden zur Liste als Pointer hinzugefügt
	list.remove(4);   //Funktioniert
	list.remove(&amp;ele2);    //Diese Methode kennt er nicht!!!
	return 1;
}
</code></pre>
<p>In der Main.h steht unter anderem:</p>
<pre><code>#include &quot;BounceElement.h&quot;
#include &quot;ElementList.h&quot;
</code></pre>
<p>Ich benutze Microsoft Visual C++ 2008 Express Edition, vielleicht ist das ja wichtig.</p>
<p>Allein am Autocode vervollständiger (IntelliSense) sieht man schon, dass er die Methode remove mit dem BounceElement *element als Parameter nicht findet, da er mir sobald ich list. eingebe nur die Methode remove(int) vorgibt, und keine zweite Methode remove(BounceElement)...</p>
<p>Das seltsame ist, dass ElementList.cpp normal kompiliert wird , ich also keinen Fehler beim überladen der Funktion gemacht habe, jedoch die Main.cpp nicht kompiliert wird, da er diese Methode nicht findet.</p>
<p>Der genaue Fehler sieht so aus:</p>
<pre><code>(pfad)main.cpp(28) : error C2664: 'ElementList::remove': Konvertierung des Parameters 1 von 'BounceElement *' in 'int' nicht möglich
</code></pre>
<p>Weiß jemand eine Lösung für mein Problem? bin am verzweifeln <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="=/"
      alt="😕"
    /></p>
<p>Danke schonmal im Vorraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250571/problem-bei-overload-function</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 23:38:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250571.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Sep 2009 16:22:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei overload function on Sun, 20 Sep 2009 16:22:12 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>Ich habe da ein kleines Problem und komme nicht weiter...</p>
<p>Vorab: Gegooglet hab ich schon und hier im Forum finde ich auch kein vergleichbares Problem...</p>
<p>Zum Problem:</p>
<p>Ich habe eine Klasse geschrieben (eine dynamische Liste um genau zu sein).<br />
In dieser Klasse gibt es 2 Funktionen mit dem selben Namen und Rückgabewert, aber verschiedenen Parametern (overloaded halt)</p>
<p>Bis dato sieht die Headerdatei so aus:<br />
(unwichtiges auskommentiert)</p>
<pre><code>#pragma once

#include &quot;BounceElement.h&quot;

struct ElementListKnot
{
	//Attribute
};

class ElementList
{
public:
	ElementList(void);
	~ElementList(void);
	//weitere Funktionen
	void remove(BounceElement *eleToRemove);
	void remove(int index);
//private Attribute
};
</code></pre>
<p>Es geht hier um die Methode remove, die einmal einen int und einmal einen Pointer zu einem BounceElement als parameter benutzt.</p>
<p>In der .cpp Datei werden diese Methoden auch deklariert:</p>
<pre><code>void ElementList::remove(int index)
{
	//Funktionskörper
}

void ElementList::remove(BounceElement *eleToRemove)
{
	//Funktionskörper
}
</code></pre>
<p>So weit so gut, kompiliere ich die ElementList.cpp Datei gibt er keinen Fehler aus!</p>
<p>Nun will ich diese Klasse in einer Testklasse testen.</p>
<p>Diese sieht wie folgt aus (unwichtiges natürlich wieder auskommentiert):</p>
<pre><code>#include &quot;Main.h&quot;

Main::Main(void)
{
}

Main::~Main(void)
{
}

int Main::main()
{
	BounceElement ele1(1, 2, 3);
	BounceElement ele2(2,3,4);
	BounceElement ele3(3,4,5);
	BounceElement ele4(4,5,6);
	BounceElement ele5(5,6,7);
	BounceElement ele6(6,7,8);
	ElementList list;
        //ele1 bis ele6 werden zur Liste als Pointer hinzugefügt
	list.remove(4);   //Funktioniert
	list.remove(&amp;ele2);    //Diese Methode kennt er nicht!!!
	return 1;
}
</code></pre>
<p>In der Main.h steht unter anderem:</p>
<pre><code>#include &quot;BounceElement.h&quot;
#include &quot;ElementList.h&quot;
</code></pre>
<p>Ich benutze Microsoft Visual C++ 2008 Express Edition, vielleicht ist das ja wichtig.</p>
<p>Allein am Autocode vervollständiger (IntelliSense) sieht man schon, dass er die Methode remove mit dem BounceElement *element als Parameter nicht findet, da er mir sobald ich list. eingebe nur die Methode remove(int) vorgibt, und keine zweite Methode remove(BounceElement)...</p>
<p>Das seltsame ist, dass ElementList.cpp normal kompiliert wird , ich also keinen Fehler beim überladen der Funktion gemacht habe, jedoch die Main.cpp nicht kompiliert wird, da er diese Methode nicht findet.</p>
<p>Der genaue Fehler sieht so aus:</p>
<pre><code>(pfad)main.cpp(28) : error C2664: 'ElementList::remove': Konvertierung des Parameters 1 von 'BounceElement *' in 'int' nicht möglich
</code></pre>
<p>Weiß jemand eine Lösung für mein Problem? bin am verzweifeln <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="=/"
      alt="😕"
    /></p>
<p>Danke schonmal im Vorraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781816</guid><dc:creator><![CDATA[Tharug]]></dc:creator><pubDate>Sun, 20 Sep 2009 16:22:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei overload function on Sun, 20 Sep 2009 17:26:03 GMT]]></title><description><![CDATA[<p>Das kann ich mit den Angaben die du gemacht hast nicht nachvollziehen. Ich habe die Programmteile die du hier gepostet hast genommen und die fehlenden Deklarationen ergänzt. Hatte dann keine Probleme mit dem Compilieren. Gib uns bitte ein vollständiges, nicht compilierendes Beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781839</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 20 Sep 2009 17:26:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei overload function on Sun, 20 Sep 2009 18:06:17 GMT]]></title><description><![CDATA[<p>Außerdem ist da die Rede von Zeile 28, die es bei dir aber nicht gibt. Also, her damit!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781849</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 20 Sep 2009 18:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei overload function on Sun, 20 Sep 2009 18:39:34 GMT]]></title><description><![CDATA[<p>Zeile 28 ist diese Zeile:</p>
<pre><code>list.remove(&amp;ele2);
</code></pre>
<p>Nur da ich unwichtiges auskommentiert habe, sind ein paar Zeilen verschwunden.</p>
<p>Ich habe gerade versucht, einfach mal die remove(int) Funktion auszukommentieren, daraufhin habe ich die aufrufe in der Main.cpp auch auskommentiert.</p>
<p>Nun stand da nachdem ich die Elemente hinzugefügt habe nurnoch remove(&amp;ele2), und er versucht es immernoch in einen int umzuwandeln, d.h. der Compiler merkt nichtmal, wenn ich irgendwas an der ElementList.cpp ändere, zumindest was die Header datei angeht, vorher (ohne die remove(BounceElement)) hat alles normal funktioniert, könnte es sein, dass das einfach nur ein Compiler Fehler ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781868</guid><dc:creator><![CDATA[Tharug]]></dc:creator><pubDate>Sun, 20 Sep 2009 18:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei overload function on Sun, 20 Sep 2009 18:49:34 GMT]]></title><description><![CDATA[<p>Tharug schrieb:</p>
<blockquote>
<p>könnte es sein, dass das einfach nur ein Compiler Fehler ist?</p>
</blockquote>
<p>was ich mir viel besser vorstellen kann: ein fehler des compiler-nutzers...<br />
Also überprüf mal, ob du vll die falsche *.cpp änderst...</p>
<p>bb</p>
<p>edit: aber du hast doch im header dann die int-variante auch auskommentiert, oder!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781873</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 20 Sep 2009 18:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei overload function on Sun, 20 Sep 2009 19:01:50 GMT]]></title><description><![CDATA[<p>Ja im Header hab ich die Funktion auch auskommentiert...</p>
<p>Und ja du hast recht, es war ein compilernutzer fehler^^</p>
<p>Ich hab mir ebend den Pfad der ElementList.cpp angeschaut und hab scheinbar beim kopieren irgendeinen Fehler gemacht...</p>
<p>Ich hab die Klasse aus einem anderen Projekt in dieses Testprojekt kopiert...</p>
<p>Irgendwie is aber der Pfad zur Datei bestehen geblieben, also immernoch zu der Datei im ursprungsprogramm...</p>
<p>Hab das jetzt geändert indem ich einfach im Test projekt für jede Klasse ne neue Klasse angelegt hab, den quellcode kopiert, dann die alten Dateien gelöscht und die neuen umbenannt hab^^</p>
<p>Danke nochmal für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781879</guid><dc:creator><![CDATA[Tharug]]></dc:creator><pubDate>Sun, 20 Sep 2009 19:01:50 GMT</pubDate></item></channel></rss>