<?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[CList und Find()]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Hab ein kleines Problem und komme einfach nicht weiter:</p>
<p>Ich hab eine selbst definierte Klasse CVUDataChannel, deren Header folgendemaßen aussieht:</p>
<pre><code>#pragma once

class CVUDataChannel
	{
	// Member-Variablen
	public:
		double m_dTime;
		BYTE m_ucSpeed;
		float m_fAcc;
		float m_fOdoVal;
		BYTE m_ucInputState;
		BYTE m_ucHighResTriggerType;

	// Methoden
	public:
		CVUDataChannel();
		~CVUDataChannel();
		//CVUDataChannel &amp;CVUDataChannel::operator= (CVUDataChannelData &amp;data);
		bool CVUDataChannel::operator==(CVUDataChannel&amp; data);
	};
</code></pre>
<p>Nun verwende ich diese Klasse in einer CList:</p>
<pre><code>CList&lt;CVUDataChannel, CVUDataChannel&amp;&gt; m_dataChannelList;
</code></pre>
<p>Funktioniert soweit auch. Nur sobald ich die Find-Methode der Liste verwenden möchte bekomme ich folgenden Compiler-Error:</p>
<pre><code>eror C2678: binary '==' : no operator found which takes a left-hand operand of type 'const CVUDataChannel' (or there is no acceptable conversion)
</code></pre>
<p>Der Code des ==-Operators in CVUDataChannel sieht folgendermaßen aus:</p>
<pre><code>bool CVUDataChannel::operator==(CVUDataChannel&amp; data)
	{
	if (this == &amp;data)
		return true;

	if (m_dTime == data.m_dTime)
		return true;
	else
		return false;
	}
</code></pre>
<p>Warum funktioniert das ganze jetzt nicht? Weiß leider wirklich keinen Rat mehr und bräuchte eure Hilfe!</p>
<p>danke, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162910/clist-und-find</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 07:16:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162910.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Oct 2006 11:13:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CList und Find() on Tue, 24 Oct 2006 11:13:14 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Hab ein kleines Problem und komme einfach nicht weiter:</p>
<p>Ich hab eine selbst definierte Klasse CVUDataChannel, deren Header folgendemaßen aussieht:</p>
<pre><code>#pragma once

class CVUDataChannel
	{
	// Member-Variablen
	public:
		double m_dTime;
		BYTE m_ucSpeed;
		float m_fAcc;
		float m_fOdoVal;
		BYTE m_ucInputState;
		BYTE m_ucHighResTriggerType;

	// Methoden
	public:
		CVUDataChannel();
		~CVUDataChannel();
		//CVUDataChannel &amp;CVUDataChannel::operator= (CVUDataChannelData &amp;data);
		bool CVUDataChannel::operator==(CVUDataChannel&amp; data);
	};
</code></pre>
<p>Nun verwende ich diese Klasse in einer CList:</p>
<pre><code>CList&lt;CVUDataChannel, CVUDataChannel&amp;&gt; m_dataChannelList;
</code></pre>
<p>Funktioniert soweit auch. Nur sobald ich die Find-Methode der Liste verwenden möchte bekomme ich folgenden Compiler-Error:</p>
<pre><code>eror C2678: binary '==' : no operator found which takes a left-hand operand of type 'const CVUDataChannel' (or there is no acceptable conversion)
</code></pre>
<p>Der Code des ==-Operators in CVUDataChannel sieht folgendermaßen aus:</p>
<pre><code>bool CVUDataChannel::operator==(CVUDataChannel&amp; data)
	{
	if (this == &amp;data)
		return true;

	if (m_dTime == data.m_dTime)
		return true;
	else
		return false;
	}
</code></pre>
<p>Warum funktioniert das ganze jetzt nicht? Weiß leider wirklich keinen Rat mehr und bräuchte eure Hilfe!</p>
<p>danke, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160230</guid><dc:creator><![CDATA[suamikim]]></dc:creator><pubDate>Tue, 24 Oct 2006 11:13:14 GMT</pubDate></item><item><title><![CDATA[Reply to CList und Find() on Tue, 24 Oct 2006 11:51:07 GMT]]></title><description><![CDATA[<p>Lies den Fehler nochmals genau und dann weisst du es ^^</p>
<pre><code class="language-cpp">bool CVUDataChannel::operator== (const CVUDataChannel&amp; data)
// ...
</code></pre>
<p>Da fehlt einfach nur ein const in den Klammern, genau wie es eben auch in der Fehlermeldung gesagt wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Aja und übrigens, das folgende lässt sich abkürzen:</p>
<pre><code class="language-cpp">CList&lt;CVUDataChannel, CVUDataChannel&amp;&gt; m_dataChannelList;
// Abgekürzt:
CList&lt;CVUDataChannel&gt; m_DataChannelList;
// Wieso? Weil die Templates von CList so definiert sind:
CList&lt;class TYPE, const class ARG_TYPE = TYPE&amp;&gt;
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160261</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 24 Oct 2006 11:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to CList und Find() on Tue, 24 Oct 2006 11:56:19 GMT]]></title><description><![CDATA[<p>Hm, eigentlich hab ich schon alles durchprobiert, was irgendwie möglich ist (also auch mit const, was bisher nicht funktioniert hat...</p>
<p>Habs gerade nochmal mit const versucht und siehe da -&gt; Es funktionert!</p>
<p>Weiß zwar nicht, was ich vorher anders gemacht habe, aber nun klappts ja!</p>
<p>Danke, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160265</guid><dc:creator><![CDATA[suamikim]]></dc:creator><pubDate>Tue, 24 Oct 2006 11:56:19 GMT</pubDate></item><item><title><![CDATA[Reply to CList und Find() on Tue, 24 Oct 2006 12:00:43 GMT]]></title><description><![CDATA[<p>Hätte da noch eine Frage:</p>
<p>Ich kann ja als Template-Typ auch eine Struktur verwenden, was ich bisher auch so praktiziert habe (also CVUDataChannel nicht als Klasse sondern struct).</p>
<p>Leider bin ich da beim Find eben auf den Fehler gestoßen, dass ja kein Vergleichsoperator überladen ist.<br />
Kann man das mit einer struct auch irgendwie hinbekommen oder bleibt mir nichts anderes als der die Klasse übrig?</p>
<p>danke, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160269</guid><dc:creator><![CDATA[suamikim]]></dc:creator><pubDate>Tue, 24 Oct 2006 12:00:43 GMT</pubDate></item></channel></rss>