<?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[Kopierkonstruktor, wer ruft den auf?]]></title><description><![CDATA[<p>Wenn ich jetzt 2 Objekte habe eins namens Haus1 und eins namens Haus2.<br />
Und alles was in Haus1 drin steht soll in Haus2 drin stehen.<br />
Also einfach:</p>
<pre><code class="language-cpp">Haus2 = Haus1;
</code></pre>
<p>So, wer ruft jetzt aber den Kompierkonstruktor auf? Ich glaub Haus2? ...Hier mal eine Skizze wie ich mir das vorstell, stimmt des so?<br />
<a href="http://bildrian.de/n/b/bfe373cd385fefd8.jpg" rel="nofollow">http://bildrian.de/n/b/bfe373cd385fefd8.jpg</a></p>
<p>Dankeschön schon mal im Voraus.</p>
<p>EDIT: Wenn man auf den Link klickt funktionierts irgendwie nicht, ich weiß auch net warum. Wenn man den aber per Hand in die URL Leiste reinkopiert dann gehts, also bei mir. Ich hoff mal bei euch gehts so wies gehen soll <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/188809/kopierkonstruktor-wer-ruft-den-auf</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 04:40:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188809.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Aug 2007 11:51:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:03:05 GMT]]></title><description><![CDATA[<p>Wenn ich jetzt 2 Objekte habe eins namens Haus1 und eins namens Haus2.<br />
Und alles was in Haus1 drin steht soll in Haus2 drin stehen.<br />
Also einfach:</p>
<pre><code class="language-cpp">Haus2 = Haus1;
</code></pre>
<p>So, wer ruft jetzt aber den Kompierkonstruktor auf? Ich glaub Haus2? ...Hier mal eine Skizze wie ich mir das vorstell, stimmt des so?<br />
<a href="http://bildrian.de/n/b/bfe373cd385fefd8.jpg" rel="nofollow">http://bildrian.de/n/b/bfe373cd385fefd8.jpg</a></p>
<p>Dankeschön schon mal im Voraus.</p>
<p>EDIT: Wenn man auf den Link klickt funktionierts irgendwie nicht, ich weiß auch net warum. Wenn man den aber per Hand in die URL Leiste reinkopiert dann gehts, also bei mir. Ich hoff mal bei euch gehts so wies gehen soll <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1338622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338622</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 11:57:23 GMT]]></title><description><![CDATA[<p>Gar niemand, oder?<br />
Der =-Operator (von Haus2) wird aufgerufen, so wie ich das verstehe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338624</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:05:11 GMT]]></title><description><![CDATA[<p>Hä, echt? Für was braucht man den dann einen Kopierkonstruktor. Ich hab immer gedacht den nimmt man wenn im Objekt Zeiger vorkommen die Speicher auf dem Heap reserviert haben. Sodass dann nicht bei zwei Objekten die Adressen gleich sind auf die die Zeiger zeigen. Sonst gibts doch irgendwie nen Crash?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338629</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:06:53 GMT]]></title><description><![CDATA[<p>kommt drauf an:</p>
<pre><code class="language-cpp">Haus haus2 = haus1; // entspricht: Haus haus2(haus1) --&gt; CpyCtor wird aufgerufen. (von haus2)

Haus haus3;
haus3 = haus1; // operator= wird aufgerufen. (von haus3)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1338630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338630</guid><dc:creator><![CDATA[wandrer]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:08:07 GMT]]></title><description><![CDATA[<p>Ja, Stromberg du hast net Unrecht -<br />
aber wenn du den Kopierkonstruktor überladen musst, dann musst du in der Regel auch den ZUweisungsoperator und den Destruktor überladen ...</p>
<p>dafür braucht man den Kopierkonstruktor:</p>
<pre><code class="language-cpp">TObject Object1;
// do something
TObject Object2(Object1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1338631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338631</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:10:04 GMT]]></title><description><![CDATA[<p>Also...</p>
<p>a) Die Rechte Seite eines Ausdrucks wird auf die Linke angewendet. Daher würde es wenn Haus2 sein...</p>
<p>b) Der Kopierkonstruktor wird nur bei der Initialisierung aufgerufen, der Zuweisungsoperator immer wenn nach einer Initialisierung eine Zuweisung erfolgt.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class Haus { ... };

int main()
{
  Haus haus1;
  Haus haus2 = haus1; // Initialisierung, daher Kopierkonstruktor (von haus2)
  Haus haus3(haus1);  // Ebenso (nur halt von haus3)
  haus2 = haus1;      // Nachträgliche Zuweisung: Zuweisungsoperator
  return 0;
}
</code></pre>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338632</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:10:04 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:18:30 GMT]]></title><description><![CDATA[<p>Also wenn ich das richtig verstanden habe, dann wird der Kopierkonstruktor nur dann aufgerufen wenn die zuweisung gleich währen der initialisierung stattfindet? Also (wie schon von asc gesagt):</p>
<pre><code class="language-cpp">Haus haus2 = haus1; //tiefe Kopie
</code></pre>
<p>und wenn man es aber einfach so irgendwann mancht und nicht während der Initialisierung, dann findet nur eine flache Kopie statt, und man muss den operator &quot;=&quot; überladen und ihm sagen das er den Kopierkonstruktor aufrufen soll?</p>
<pre><code class="language-cpp">haus2 = haus1; //flache Kopie
</code></pre>
<p>Dankeschön schon mal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338637</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:18:30 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:45:08 GMT]]></title><description><![CDATA[<p>Nein.</p>
<p>Der Konstruktor konstruiert Objekte.</p>
<p>Haus a;</p>
<p>hier wird a konstruiert.</p>
<p>a=b;</p>
<p>a ist schon konstruiert, es erfolgt eine einfache Zuweisung ohne irgendwelche Konstruktoren. Den Zuweisungsoperator musst du trotzdem überladen und ihm sagen was er tun soll. Aber mit einem Konstruktor hat das nichts zu tun. Konstruktoren erstellen neue Objekte. a existiert aber definitiv schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338642</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:45:08 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 12:52:56 GMT]]></title><description><![CDATA[<blockquote>
<p>Kopierkonstruktor. Ich hab immer gedacht den nimmt man wenn im Objekt Zeiger vorkommen die Speicher auf dem Heap reserviert haben</p>
</blockquote>
<p>nein.<br />
der CpyCtor macht eigentlich das gleiche wie der operator= (normalerweise).</p>
<p>Unterschied: Falls Zeiger im Objekt vorkommen muss man beim CpyCtor nicht überprüfen worauf die Zeiger zeigen, bevor man (dem Zeigerwert selbst) neue Werte zuweist.<br />
Wenn man beim operator= nicht überprüft worauf die Zeiger zeigen und einfach einen neuen wert zuweist, können speicherlöcher entstehen (falls die Adresse, des Objektes auf das der Zeiger gezeigt hat nicht einem anderen Objekt bekannt ist).</p>
<p>dann steht in dem oben geposteten link:</p>
<pre><code class="language-cpp">Haus( Haus const&amp; rhs )
{
	*p1 = rhs.Get_p1(); // p1 u p2 sind Zeiger
	*p2 = rhs.Get_p2();
        ...
}
</code></pre>
<p>Das würde ich lassen.<br />
p1 etc. zeigen irgendwo in den speicher,<br />
mit *p1 greifst du also auf speicher zu, der dir nicht gehört.</p>
<p>evtl meinst du:</p>
<pre><code class="language-cpp">class Haus
{
private:
	HausElement *p1;

	Haus( Haus const&amp; rhs )
	{
		p1 = rhs.Get_p1(); // also: p1 = rhs.p1;		
	}
	// oder
	Haus( Haus const&amp; rhs )
	{
		p1 = new HausElement();
		*p1 = rhs.Get_p1(); // also: *p1 = *(rhs.p1);
	} // dann wäre es aber wahrs. güstiger das HausElement gleich ins Haus zu setzen
	// also: HausElement he1; statt: HausElement *p1;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1338645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338645</guid><dc:creator><![CDATA[wandrer]]></dc:creator><pubDate>Sat, 04 Aug 2007 12:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:00:02 GMT]]></title><description><![CDATA[<p>wandrer schrieb:</p>
<blockquote>
<p>....mit *p1 greifst du also auf speicher zu, der dir nicht gehört.</p>
</blockquote>
<p>Ich hab mir im Konstruktor aber zuvor speicher reserviert:</p>
<pre><code class="language-cpp">Haus::Haus(int a,int b,int c)
{
    p1=new int(a);
    p2=new int(b);
    p3=new int(c);

}
</code></pre>
<p>Also wenn du das meinst? Aber so wärs doch dann in Ordnung oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338648</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:05:15 GMT]]></title><description><![CDATA[<p>Hier mal noch n ähnlicher vollständiger Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Mammal
{
    public:
    Mammal(int a,int b,int c);
    Mammal(const Mammal &amp;rhs);
    ~Mammal();
    int Get_p1() const {return *p1;}
    int Get_p2() const {return *p2;}
    int Get_p3() const {return *p3;}

    private:
    int *p1;
    int *p2;
    int *p3;

};

Mammal::Mammal(int a,int b,int c)
{
    p1=new int(a);
    p2=new int(b);
    p3=new int(c);

}

Mammal::Mammal(const Mammal &amp;rhs)
{
    *p1=rhs.Get_p1();
    *p2=rhs.Get_p2();
    *p3=rhs.Get_p3();
}

Mammal::~Mammal()
{

}

class Dog : public Mammal
{
    public:
    Dog(int LA_a,int LA_b,int LA_c,int a,int b,int c);
    Dog(const Dog &amp;rhs);
    ~Dog();
    int Get_p1() const {return *p1;}
    int Get_p2() const {return *p2;}
    int Get_p3() const {return *p3;}

    private:
    int *p1;
    int *p2;
    int *p3;
};

Dog::Dog(int LA_a,int LA_b,int LA_c,int a,int b,int c)
:Mammal(LA_a,LA_b,LA_c)
{
    p1=new int(a);
    p2=new int(b);
    p3=new int(c);

}

Dog::Dog(const Dog &amp;rhs)
:Mammal(rhs)
{
    *p1=rhs.Get_p1();
    *p2=rhs.Get_p2();
    *p3=rhs.Get_p3();
}

Dog::~Dog()
{

}

int main()
{

    return 0;
}
</code></pre>
<p>So wär das aber doch ganz sauber gemacht oder?</p>
<p>Dankeschön schon mal im Voraus.</p>
<p>EDIT: Das deleten in den Desturktoren hab ich jetzt halt vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338650</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:05:15 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:07:45 GMT]]></title><description><![CDATA[<p>Nein.<br />
Dein Konstruktor ist ok. Aber dein Kopierkonstruktor schreibt in Speicher der dir nicht gehört. p1, p2 und p3 haben keinen Speicher zugewiesen bekommen.</p>
<p>Das Löschen im Destruktor fehlt und der Zuweisungsoperator fehlt.</p>
<p>Nochmal:<br />
die Konstruktoren erstellen etwas: der Kopierkonstruktor erstellt das Objekt. Es wird nicht zuerst der Standard Konstruktor aufgerufen sondern sofort der Kopierkonstruktor.</p>
<p>Und du hast ein Namensproblem: warum nennst du alle Attribute und Methoden gleich? Du solltest da schon etwas differenzieren. p1 in Dog ist ein anderes p1 als in Mammal. Da solltest du eigentlich eine Compilerwarnung bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338653</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:18:22 GMT]]></title><description><![CDATA[<p>Du kannst aber die ints auch &quot;direkt&quot; verwenden, also so:</p>
<pre><code class="language-cpp">class Mammal
{
    public:
    Mammal(int a,int b,int c);
    Mammal(const Mammal &amp;rhs);
    ~Mammal();
    int Get_p1() const {return p1;}
    int Get_p2() const {return p2;}
    int Get_p3() const {return p3;}

    private:
    int p1, p2, p3;
};

Mammal::Mammal(int a,int b,int c)
{
    p1=a;
    p2=b;
    p3=c;

}

Mammal::Mammal(const Mammal &amp;rhs)
{
    p1=rhs.Get_p1();
    p2=rhs.Get_p2();
    p3=rhs.Get_p3();
}

Mammal::~Mammal()
{
  // Den brauchst du dann eigentlich nicht mehr
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1338656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338656</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:18:22 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:40:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13210">@Badestrand</a><br />
Ja aber ich hab hier halt absichtlich Zeiger genommen, weil es ja um den Kopierkonstruktor ging, wenn keine Zeiger dabei sind braucht man den Kopierkonstruktor ja eigentlich net.</p>
<p>@Shade Of Mine<br />
Hier wird also sofort der Kopierkonstruktor aufgerufen? :</p>
<pre><code class="language-cpp">Haus haus2(haus1);
</code></pre>
<p>Ach so, und deshlab muss ich mir den Speicher dann auch nochmal im Kopierkonstruktor reservieren, weil wenn der normale Konstruktor ja nicht mehr aufgerufen wird dann wird auch kein Speicher mehr reserviert..?<br />
*Ah ich glaub mir ist ein Licht auf gegangen*</p>
<p>Dankeschön schon mal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338667</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:54:44 GMT]]></title><description><![CDATA[<p>Wie is der Code jetzt, schaut der sauber aus? :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Mammal
{
    public:
    Mammal(int a,int b,int c);
    Mammal(const Mammal &amp;rhs);
    virtual ~Mammal();
    int Get_p1() const {return *p1;}
    int Get_p2() const {return *p2;}
    int Get_p3() const {return *p3;}

    private:
    int *p1,*p2,*p3;

};

Mammal::Mammal(int a,int b,int c)
{
    p1=new int(a);
    p2=new int(b);
    p3=new int(c);

}

Mammal::Mammal(const Mammal &amp;rhs)
{
    p1=new int(rhs.Get_p1());
    p2=new int(rhs.Get_p2());
    p3=new int(rhs.Get_p3());
}

Mammal::~Mammal()
{
    delete p1;
    delete p2;
    delete p3;
}

class Dog : public Mammal
{
    public:
    Dog(int LA_a,int LA_b,int LA_c,int a,int b,int c);
    Dog(const Dog &amp;rhs);
    ~Dog();
    int Get_m1() const {return *m1;}
    int Get_m2() const {return *m2;}
    int Get_m3() const {return *m3;}

    private:
    int *m1,*m2,*m3;

};

Dog::Dog(int LA_a,int LA_b,int LA_c,int a,int b,int c)
:Mammal(LA_a,LA_b,LA_c)
{
    m1=new int(a);
    m2=new int(b);
    m3=new int(c);

}

Dog::Dog(const Dog &amp;rhs)
:Mammal(rhs)
{
    m1=new int(rhs.Get_m1());
    m2=new int(rhs.Get_m2());
    m3=new int(rhs.Get_m3());
}

Dog::~Dog()
{
    delete m1;
    delete m2;
    delete m3;
}

int main()
{

    return 0;
}
</code></pre>
<p>Dankeschön schon mal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338675</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 13:59:23 GMT]]></title><description><![CDATA[<p>Erstens: Für einzelne int-Werte brauchst du keine Zeiger.</p>
<p>Zweitens: Beide Klassen benötigen noch einen operator=, sonst fliegt dir das Programm rechnt schnell um die Ohren (die Standardversion macht eine flache Kopie aller Member, d.h. nach einer Zuweisung m2=m1 arbeiten beide mammal's mit den selben Daten (und die int's, die m1 im Ctor geholt hat, bleiben unerreichbar im Speicher zurück).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338678</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:59:23 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor, wer ruft den auf? on Sat, 04 Aug 2007 16:07:51 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Erstens: Für einzelne int-Werte brauchst du keine Zeiger....</p>
</blockquote>
<p>Stromberg schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13210">@Badestrand</a><br />
Ja aber ich hab hier halt absichtlich Zeiger genommen, weil es ja um den Kopierkonstruktor ging, wenn keine Zeiger dabei sind braucht man den Kopierkonstruktor ja eigentlich net.</p>
</blockquote>
<p>:p <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1338721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338721</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 04 Aug 2007 16:07:51 GMT</pubDate></item></channel></rss>