<?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[Basisklasse Kopierkonstruktor]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich find im Netz nicht so recht die Info,</p>
<p>wenn ich tiefe Kopien für meine Basisklasse brauche,<br />
für meine abgeleiteten Klassen aber eigentlich nicht mehr(bezüglich<br />
ihrer zusätzlichen member), kann man dann irgendwie diese tiefen Kopien<br />
durch den Kopierkonstruktor auf der Basisklassenebene so erzeugen,<br />
dass ich diese sie nicht jedesmal für abgeleiteten Klassen<br />
neu durchführen muss...</p>
<p>Danke für die Antwort</p>
<p>Rahul</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289979/basisklasse-kopierkonstruktor</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 09:43:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289979.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 Jul 2011 18:54:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Basisklasse Kopierkonstruktor on Sat, 16 Jul 2011 18:54:54 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich find im Netz nicht so recht die Info,</p>
<p>wenn ich tiefe Kopien für meine Basisklasse brauche,<br />
für meine abgeleiteten Klassen aber eigentlich nicht mehr(bezüglich<br />
ihrer zusätzlichen member), kann man dann irgendwie diese tiefen Kopien<br />
durch den Kopierkonstruktor auf der Basisklassenebene so erzeugen,<br />
dass ich diese sie nicht jedesmal für abgeleiteten Klassen<br />
neu durchführen muss...</p>
<p>Danke für die Antwort</p>
<p>Rahul</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2093694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2093694</guid><dc:creator><![CDATA[Rahul0891]]></dc:creator><pubDate>Sat, 16 Jul 2011 18:54:54 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse Kopierkonstruktor on Sat, 16 Jul 2011 19:08:24 GMT]]></title><description><![CDATA[<p>Wenn du einen Kopierkonstruktor für deine abgeleitete Klase schreibst, kannst du selber entscheiden was der macht. Wenn du wirklich der Meinung bist, dort keine Kopie des Basis-Anteils zu benötigen, kannst du dort auch einen anderen Basis-Konstruktor verwenden.</p>
<p>(nur am Rande: Wozu benötigst du das eigentlich?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2093697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2093697</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Jul 2011 19:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse Kopierkonstruktor on Sat, 16 Jul 2011 20:03:36 GMT]]></title><description><![CDATA[<p>Hm, hat man mich doch falsch verstanden so ganz ohne Beispiel,<br />
also gut mit Beispiel</p>
<p>Ich habe mir eine Klasse zum Zeichnen einfacher OpenGL Formen erstellt.</p>
<pre><code class="language-cpp">class GL3DShapeADT
	{
	public:

		// ***** constructors  ***** 
		GL3DShapeADT(const QColor  &amp; surfaceColour, const QVector3D  &amp; centre);
		GL3DShapeADT(const GL3DShapeADT &amp; rhs);
		virtual ~GL3DShapeADT();

...
	protected:
		// ***** members *****
		QVector&lt;GL3DShapeADT *&gt;  m_glSubShapes;

		QVector&lt;QVector3D&gt;       m_vertices;
		QVector&lt;QVector3D&gt;       m_normals;
		QVector&lt;GLushort&gt;        m_faceVertIndices;

		QMatrix4x4               m_transformationInWorld;
		QVector3D                m_centre;
		GLfloat                  m_surfaceColour[4];

	}; // class
</code></pre>
<p>Alle Shapes haben Vertices, Normalen und Indizes für die Flächen.<br />
Die Formen können aber auch Subformen(m_glSubShapes) haben, um auf einfache Weise wiederzuverwenden, was schon mal erstellt wurde<br />
(Die OpenGL Arrays sind ja mühselig handzuhaben). So ist z.B im Moment die Halbkugel eine Subform,<br />
die ich schön wiederverwenden kann, zum einen für die Kugel, zum anderen<br />
für eine Zylinder mit abgerundeten Enden...</p>
<p>Wenn ich eine abgeleitete Shape kopiere, benötigen prinzipiell nur die &quot;m_glSubShapes&quot; tiefe Kopien. Ich fände es da aus Convenience-Gründen besser, aber auch für einen fremden Programmierer, oder mich in ein paar Monaten<br />
vielleicht sicherer, wenn er nicht jedes mal den Kopierkonstruktor für die abgeleiteten Klassen überschreiben müsste, sondern das auf irgendeine Weise inherent von der Basisklasse erledigt wird, halt ohne dass ich noch was an der<br />
abgeleiteten Klasse herumschrauben muss. Ich hoffe, ich habe mich verständlich genug ausgedrückt...</p>
<p>Vielen Dank<br />
Rahul</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2093704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2093704</guid><dc:creator><![CDATA[Rahul0891]]></dc:creator><pubDate>Sat, 16 Jul 2011 20:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse Kopierkonstruktor on Sat, 16 Jul 2011 20:18:43 GMT]]></title><description><![CDATA[<p>Rahul0891 schrieb:</p>
<blockquote>
<p>kann man dann irgendwie diese tiefen Kopien<br />
durch den Kopierkonstruktor auf der Basisklassenebene so erzeugen,<br />
dass ich diese sie nicht jedesmal für abgeleiteten Klassen<br />
neu durchführen muss...</p>
</blockquote>
<p>Meinst Du so etwas:</p>
<pre><code class="language-cpp">class Base
{
    public:
        ...
        Base(const Base &amp;src); //Kopierkonstruktor Basisklasse
        ...
};

class Derived : public Base
{
    public:
        ...
        Derived(const Derived &amp;src);
        ...
};

Derived::Derived(const Derived &amp;src) : Base(src) //Kopierkonstruktor Basisklasse aufrufen
{
    ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2093709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2093709</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 16 Jul 2011 20:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse Kopierkonstruktor on Mon, 18 Jul 2011 20:24:05 GMT]]></title><description><![CDATA[<p>Jo danke,<br />
stand ein wenig sehr auf dem Schlauch, das der einmal definierte Kopierkonstruktor automatisch vom Compiler für die abgeleitete Klasse eingebaut wird.</p>
<p>Dann noch einmal danke für die Antwort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2094549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2094549</guid><dc:creator><![CDATA[Rahul0891]]></dc:creator><pubDate>Mon, 18 Jul 2011 20:24:05 GMT</pubDate></item></channel></rss>