<?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[static memberfunktion und static member]]></title><description><![CDATA[<p>die folgende codes habe ich irgendwo gelesen, es geht drum, die Fehler rauszufinden.</p>
<pre><code class="language-cpp">#include &lt;string.h&gt;
#include &lt;stdio.h&gt;

class Base
{
  private:
    char * name;
  public:
    Base(char * className)
    {
        name = new char[strlen(className)];
        strcpy(name, className);
    }

    ~Base()
    {
        delete name;
    }

    static void print(Base base)
    {
        printf(&quot;name: %s\n&quot; , base.name);
    }
};

class Subclass : public Base
{
  public:
    Subclass(char * className) : Base(className)
    {
    }
};

int main()
{
    Base * pBase = new Subclass(&quot;test&quot;);
    Base::print(*pBase);
    return 0;
}
</code></pre>
<p>1. hier wird memory in main allokiert, aber woanders gelöscht.<br />
2. durch static memberfunction auf nicht static member zugriffen(können wir das ausnutzen?)<br />
3.Base-Teil wird gelöscht, aber nicht der Derived-Teil(memoryleak)<br />
4. C, C++ gemischt<br />
was ich nicht verstehe, wieso stürzt es bei</p>
<pre><code class="language-cpp">~Base()
    {
        delete name;
    }
</code></pre>
<p>ab?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159615/static-memberfunktion-und-static-member</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 15:15:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159615.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Sep 2006 10:21:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 10:21:34 GMT]]></title><description><![CDATA[<p>die folgende codes habe ich irgendwo gelesen, es geht drum, die Fehler rauszufinden.</p>
<pre><code class="language-cpp">#include &lt;string.h&gt;
#include &lt;stdio.h&gt;

class Base
{
  private:
    char * name;
  public:
    Base(char * className)
    {
        name = new char[strlen(className)];
        strcpy(name, className);
    }

    ~Base()
    {
        delete name;
    }

    static void print(Base base)
    {
        printf(&quot;name: %s\n&quot; , base.name);
    }
};

class Subclass : public Base
{
  public:
    Subclass(char * className) : Base(className)
    {
    }
};

int main()
{
    Base * pBase = new Subclass(&quot;test&quot;);
    Base::print(*pBase);
    return 0;
}
</code></pre>
<p>1. hier wird memory in main allokiert, aber woanders gelöscht.<br />
2. durch static memberfunction auf nicht static member zugriffen(können wir das ausnutzen?)<br />
3.Base-Teil wird gelöscht, aber nicht der Derived-Teil(memoryleak)<br />
4. C, C++ gemischt<br />
was ich nicht verstehe, wieso stürzt es bei</p>
<pre><code class="language-cpp">~Base()
    {
        delete name;
    }
</code></pre>
<p>ab?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138911</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sun, 17 Sep 2006 10:21:34 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 10:39:16 GMT]]></title><description><![CDATA[<p>static void print(Base base)<br />
läßt sich ne kopie erzeugen ohne sinnvollen kopierkonstruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138921</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 17 Sep 2006 10:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 10:53:06 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>static void print(Base base)<br />
läßt sich ne kopie erzeugen ohne sinnvollen kopierkonstruktor.</p>
</blockquote>
<p>ja, weil dies &quot;base&quot; ist ein vorläufiges object, beim Verlassen der Funktion, wird D'tor aufgerufen (Base-Teil ist damit gelöscht!)<br />
Aber das hat mit dem Abstürzen nichts zu tun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138933</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sun, 17 Sep 2006 10:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 11:03:30 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">delete [] name;
</code></pre>
<p>sollts auch heissen.</p>
<pre><code class="language-cpp">virtual ~Base()
</code></pre>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138940</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 11:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 11:10:41 GMT]]></title><description><![CDATA[<p>stürzt trotzdem ab an der selben Stelle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138942</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sun, 17 Sep 2006 11:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 11:23:08 GMT]]></title><description><![CDATA[<p>Weil der Speicher schon früher freigegeben wurde, würd ich ma sagen.</p>
<p>Ein Copy C'tor behebt das Problem:</p>
<pre><code class="language-cpp">Base( const Base &amp;other )
{
	name = new char[ strlen( other.name )+1 ];
	strcpy( name, other.name );
}
</code></pre>
<p>Bei <em>print</em> wäre eine Übergabe als konstante Referenz aber sowiso besser:</p>
<pre><code class="language-cpp">static void print( const Base &amp;base )
{
	printf( &quot;name: %s\n&quot;, base.name );
}
</code></pre>
<p>Im ganzen also:</p>
<pre><code class="language-cpp">class Base
{
private:
	char *name;

public:
	Base( const char *className )
	{
		Init( className );
	}

	Base( const Base &amp;other )
	{
		*this = other;
	}

	virtual ~Base()
	{
		delete [] name;
	}

	Base &amp;operator=( const Base &amp;other )
	{
		delete [] name;
		Init( other.name );
		return *this;
	}

	void Init( const char *className )
	{
		name = new char[ strlen( className )+1 ];
		strcpy( name, className );
	}

	static void print( const Base &amp;base )
	{
		printf( &quot;name: %s\n&quot;, base.name );
	}
};

class Subclass : public Base
{
public:
	Subclass( const char *className ) : Base( className )
	{}
};
</code></pre>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138945</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 11:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 11:29:11 GMT]]></title><description><![CDATA[<blockquote>
<p>Weil der Speicher schon früher freigegeben wurde, würd ich ma sagen.</p>
</blockquote>
<p>welche Speicher? this Pointer? es war nicht NULL,<br />
name? es hatte auch einen Inhalt drin.<br />
wenn es NULL war, kann ich trotzdem löschen, (etwa delete NULL)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138956</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sun, 17 Sep 2006 11:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 11:36:49 GMT]]></title><description><![CDATA[<p>Der Speicher wird <strong>freigegeben</strong> und nicht auf NULL gesetzt und zwar genau an der Stelle an welcher die lokale Kopie von <em>Base</em> gelöscht wird, nämlich in der Funktion <em>print</em>.</p>
<pre><code class="language-cpp">static void print(Base base) // erstellt eine flache kopie (zeiger adresse von name wird einfach kopiert
{
     printf(&quot;name: %s\n&quot; , base.name); // super, funktioniert
} // löscht die lokale kopie und ruft den Destruktor auf welcher den Speicher freigibt
</code></pre>
<p>Weil es sich um eine flache Kopie des Objekts handelt zeigen beide Zeiger (pBase-&gt;name und <a href="http://base.name" rel="nofollow">base.name</a>) auf den gleichen Speicherbereich. Wenn beim verlassen des Programms nun pBase zerstört wird (sollte ohnehinn per delete geschehen) versuchst du einen Speicherbereich freizugeben der dir garnichmehr gehört.</p>
<p>Daher =&gt; Copy C'tor und Zuweißungs Operator für Base</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138959</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 11:36:49 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 11:46:01 GMT]]></title><description><![CDATA[<blockquote>
<p>welche Speicher? this Pointer? es war nicht NULL,<br />
name? es hatte auch einen Inhalt drin.<br />
wenn es NULL war, kann ich trotzdem löschen, (etwa delete NULL)</p>
</blockquote>
<p><em>name</em> natürlich, diese Variable wurde nicht kopiert, sondern es wurde nur eine flache Kopie davon gemacht. D.h. es wurde nur der Zeiger aber nicht die zeichenkette kopiert.</p>
<p>Und nach dem das Objekt base dann 2 mal existiert weil es kopiert wurde, aber beide male einen Zeiger name haben welche beide, auf Grund der flachen Kopie (weil kein Kopierkonstruktor vorhanden ist), auf den gleichen Speicherbereich zeigen, stürzt es beim zweiten aufruf von delete ab. Mal davon abgesehen das es delete[] heißen müsste. Aber das wurde ja bereits schon erwähnt.</p>
<p>Es gibt hier jetzt zwei Möglichkeiten:</p>
<p>Erste:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

class Base
{
  private:
    std::string name;
  public:
    Base(std::string const &amp; className)
    : name(className)
    {        
    }

    virtual ~Base()
    {
    }

    static void print(Base const &amp; base)
    {
        std::cout &lt;&lt; &quot;name: &quot; &lt;&lt; base.name &lt;&lt; std::endl;
    }
};

class Subclass : public Base
{
  public:
    Subclass(std::string const &amp; className) : Base(className)
    {
    }
};

int main()
{
    Base * pBase = new Subclass(&quot;test&quot;);
    Base::print(*pBase);
    delete pBase;
    return 0;
}
</code></pre>
<p>Zweite:</p>
<pre><code class="language-cpp">#include &lt;cstring&gt;
#include &lt;iostream&gt;

class Base
{
  private:
    char * name;
  public:
    Base(char * className)
    : name(0)
    {       
        if(className){ 
            name = new char[std::strlen(className)+1]();
            std::strcpy(name,className);
        } 
    }

    Base(Base const &amp; o)
    :name(0)
    {
        if(className){ 
            name = new char[std::strlen(className)+1]();
            std::strcpy(name,className);
        } 
    }

    virtual ~Base()
    {
        delete[] name;
    }

    Base &amp; operator=(Base const &amp; o)
    {
        Base tmp(o);
        if(tmp.name){ 
            name = new char[std::strlen(tmp.name)+1]();
            std::strcpy(name,tmp.name);
        }
        return *this;
    }

    static void print(Base const &amp; base)
    {
        std::cout &lt;&lt; &quot;name: &quot; &lt;&lt; base.name &lt;&lt; std::endl;
    }
};

class Subclass : public Base
{
  public:
    Subclass(std::string const &amp; className) : Base(className)
    {
    }
};

int main()
{
    Base * pBase = new Subclass(&quot;test&quot;);
    Base::print(*pBase);
    delete pBase;
    return 0;
}
</code></pre>
<p>Ich würde natürlich die Erste Variante vorziehen, da Sie ersten weniger Fehleranfällig als die Zweite ist. Und zweitens viel weniger Schreibarbeit mit sich bringt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138968</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 17 Sep 2006 11:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 12:48:36 GMT]]></title><description><![CDATA[<p>Naja, doppelt gemoppelt hält ja bekanntlich besser... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139003</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 12:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 18:13:15 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Naja, doppelt gemoppelt hält ja bekanntlich besser... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Dein Zuweisungsoperator ist nicht ganz ok deswegen hab ich das ganze noch mal gemacht <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="😉"
    /> Und während ich die Antwort geschrieben habe, hast du schon gepostet, deswegen lösch ich doch nicht meinen ganzen Post <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Das Problem bei dir ist die Selbstzuweisung. Dabei wird der String gelöscht und kann aber nicht mehr kopiert werden.</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139165</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 17 Sep 2006 18:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 18:26:25 GMT]]></title><description><![CDATA[<p>evilissimo schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Naja, doppelt gemoppelt hält ja bekanntlich besser... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Dein Zuweisungsoperator ist nicht ganz ok [...]</p>
</blockquote>
<p>der copy-ctor ist noch schlimmer. man kann es nur immer wieder wiederholen: der aufruf des copy-operators im copy-ctor ist im grunde immer ein fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139177</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 17 Sep 2006 18:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 18:48:39 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>evilissimo schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Naja, doppelt gemoppelt hält ja bekanntlich besser... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Dein Zuweisungsoperator ist nicht ganz ok [...]</p>
</blockquote>
<p>der copy-ctor ist noch schlimmer. man kann es nur immer wieder wiederholen: der aufruf des copy-operators im copy-ctor ist im grunde immer ein fehler.</p>
</blockquote>
<p>Da hab ich gar nicht drauf geachtet aber das ist wahr <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>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139189</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 17 Sep 2006 18:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 19:23:15 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>evilissimo schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Naja, doppelt gemoppelt hält ja bekanntlich besser... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Dein Zuweisungsoperator ist nicht ganz ok [...]</p>
</blockquote>
<p>der copy-ctor ist noch schlimmer. man kann es nur immer wieder wiederholen: der aufruf des copy-operators im copy-ctor ist im grunde immer ein fehler.</p>
</blockquote>
<p>Gibts auch noch Gründe?</p>
<p>evilissimo schrieb:</p>
<blockquote>
<p>Das Problem bei dir ist die Selbstzuweisung. Dabei wird der String gelöscht und kann aber nicht mehr kopiert werden.</p>
</blockquote>
<p>Das's richtig! <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="🙂"
    /> Aber so gut dein Code auch is, es sind doch Fehler drinn! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code class="language-cpp">Base(char * className) // sollte const char * sein
: name(0)
{      
	if(className){
		name = new char[std::strlen(className)+1]();
		std::strcpy(name,className);
	}
}

Base(Base const &amp; o)
:name(0)
{
	if(className){ // className gibts an der Stelle nich
		name = new char[std::strlen(o.name)+1]();
		std::strcpy(name,o.name);
	}
}

Subclass(std::string const &amp; className) : Base(className ) // std::string zu char * convertieren is ein zweckloses Unterfangen ;)
{
}
</code></pre>
<p>Das alles is schön und gut, warscheinlich hast du den Code nich getestet aber wenn du schon an meinem Zuweißungs Operator rummäckerst dann:</p>
<pre><code class="language-cpp">Base &amp; operator=(Base const &amp; o)
{
	Base tmp(o);
	if(tmp.name){
		name = new char[std::strlen(tmp.name)+1](); // Ein DICKES FETTES Speicherleak!!!
		std::strcpy(name,tmp.name);
	}
	return *this;
}
</code></pre>
<p>Sorry, musste sein! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139191</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to static memberfunktion und static member on Sun, 17 Sep 2006 19:34:06 GMT]]></title><description><![CDATA[<p>yo das ist genau einer der Gründe welche ich gemeint habe und deswegen die Erste Variante vorziehe. (weil std::string so verwendet keine Mem-leaks verursacht und kein falsches löschen)</p>
<p>Nobody is perfect <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>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139203</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:34:06 GMT</pubDate></item></channel></rss>