<?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[vererbungs problem]]></title><description><![CDATA[<p>hallo</p>
<p>ich will eigene iterator klasse für verkettete liste schreiben<br />
um nicht jedes mal eine komplett neue iterator klasse zu schreiben habe ich eine basis klasse für einen forward iterator geschrieben.<br />
aber jedes mal wenn eine klasse von CForward ableite und dann den<br />
postfix operator++ aufrufe bekomme ich eine warnung &quot;C4620: no postfix form of 'operator ++' found for type 'Iterator', using prefix form&quot;</p>
<p>Sieht der kompiler operator++() und operator++(int) nicht als seperate überlandene Funktionen??<br />
Und gibt es noch andere möglichkeiten als operator++() virtual zu machen??</p>
<p>vielen dank schon mal im vorraus</p>
<p>AuRuX</p>
<pre><code class="language-cpp">template&lt;typename _Derived,typename _DataType&gt;
class CForward
{
public:
	_Derived&amp; operator=(const _Derived&amp; Iterator)
	{
		memcpy(this,&amp;Iterator,sizeof(_Derived));
	}

        .....

	_Derived&amp; operator++()//prefix
	{
		return *((_Derived*)this);
	}

	_Derived operator++(int)//postfix
	{
		_Derived Iterator=*((_Derived*)this);
		++(*((_Derived*)this));
		return Iterator;
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/118044/vererbungs-problem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 06:22:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118044.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Aug 2005 12:48:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vererbungs problem on Sun, 14 Aug 2005 12:48:30 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>ich will eigene iterator klasse für verkettete liste schreiben<br />
um nicht jedes mal eine komplett neue iterator klasse zu schreiben habe ich eine basis klasse für einen forward iterator geschrieben.<br />
aber jedes mal wenn eine klasse von CForward ableite und dann den<br />
postfix operator++ aufrufe bekomme ich eine warnung &quot;C4620: no postfix form of 'operator ++' found for type 'Iterator', using prefix form&quot;</p>
<p>Sieht der kompiler operator++() und operator++(int) nicht als seperate überlandene Funktionen??<br />
Und gibt es noch andere möglichkeiten als operator++() virtual zu machen??</p>
<p>vielen dank schon mal im vorraus</p>
<p>AuRuX</p>
<pre><code class="language-cpp">template&lt;typename _Derived,typename _DataType&gt;
class CForward
{
public:
	_Derived&amp; operator=(const _Derived&amp; Iterator)
	{
		memcpy(this,&amp;Iterator,sizeof(_Derived));
	}

        .....

	_Derived&amp; operator++()//prefix
	{
		return *((_Derived*)this);
	}

	_Derived operator++(int)//postfix
	{
		_Derived Iterator=*((_Derived*)this);
		++(*((_Derived*)this));
		return Iterator;
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/851945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/851945</guid><dc:creator><![CDATA[AuRuX____]]></dc:creator><pubDate>Sun, 14 Aug 2005 12:48:30 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungs problem on Mon, 15 Aug 2005 06:20:10 GMT]]></title><description><![CDATA[<p>Er sieht sie als getrennte Operatoren.</p>
<p>Dein Zuweisungsoperator ist echt wahnsinn... Objekte mit memcpy zu kopieren... *graus*</p>
<p>Außerdem ist CForward nicht vom Typ _Derived abgeleitet, sowas wie:</p>
<pre><code class="language-cpp">(_Derived*) this
</code></pre>
<p>funktioniert nicht auch wenn du den Zuweisungs-Operator überschrieben hast.</p>
<p>operator++(CForward) wäre außerdem glaub ich als Funktionsdeklaration geschickter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852312</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Mon, 15 Aug 2005 06:20:10 GMT</pubDate></item></channel></rss>