<?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[virtuelle Basisklasse mit der VCL]]></title><description><![CDATA[<p>Ich habe folgendes Konstruct</p>
<pre><code class="language-cpp">struct allgemeinForm
{ virtual void Schnittstelle() = 0;
};

class MyForm : public TForm, virtual public allgemeinForm
{ ...
};
</code></pre>
<p>Dies führt zu einer Access Violation bei der Erzeugung des Objektes.<br />
Wenn ich in der Ableitung &quot;virtual&quot; weglasse, dann geht es.</p>
<p>Hat jemand damit Erfahrung?<br />
Gibt es noch etwas zu beachten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150089/virtuelle-basisklasse-mit-der-vcl</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 10:05:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150089.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Jun 2006 07:04:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to virtuelle Basisklasse mit der VCL on Tue, 13 Jun 2006 07:04:50 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Konstruct</p>
<pre><code class="language-cpp">struct allgemeinForm
{ virtual void Schnittstelle() = 0;
};

class MyForm : public TForm, virtual public allgemeinForm
{ ...
};
</code></pre>
<p>Dies führt zu einer Access Violation bei der Erzeugung des Objektes.<br />
Wenn ich in der Ableitung &quot;virtual&quot; weglasse, dann geht es.</p>
<p>Hat jemand damit Erfahrung?<br />
Gibt es noch etwas zu beachten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076659</guid><dc:creator><![CDATA[gh]]></dc:creator><pubDate>Tue, 13 Jun 2006 07:04:50 GMT</pubDate></item><item><title><![CDATA[Reply to virtuelle Basisklasse mit der VCL on Tue, 13 Jun 2006 07:16:00 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich kann mir nicht vorstellen das das überhaupt kompiliert, bei mir (BCB5) kommt gleich die Fehlermeldung <em>VCL-Klassen dürfen nicht mehrere Basisklassen haben</em> (bezogen auf MyForm)</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076664</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 13 Jun 2006 07:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to virtuelle Basisklasse mit der VCL on Tue, 13 Jun 2006 08:29:47 GMT]]></title><description><![CDATA[<p>Er kompiliert das unter der Bedingung, das allgemeinFrom nur!! abstrakte Funktionen enthält. Es also eine reine Schnittstelle ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076711</guid><dc:creator><![CDATA[gh]]></dc:creator><pubDate>Tue, 13 Jun 2006 08:29:47 GMT</pubDate></item><item><title><![CDATA[Reply to virtuelle Basisklasse mit der VCL on Tue, 13 Jun 2006 08:53:05 GMT]]></title><description><![CDATA[<p>und allgemeine Form darf keine VCL-Klasse sein bzw. davon abgeleitet sein. Sonst bindet man nämlich zweimal TObject ein und das geht in die Hose, da Pascal keine Mehrfachvererbung unterstützt (dafür gibt es interface).<br />
Mir ist nur nicht klar warum du hier virtual erben willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076730</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 13 Jun 2006 08:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to virtuelle Basisklasse mit der VCL on Tue, 13 Jun 2006 09:39:19 GMT]]></title><description><![CDATA[<p>Das Ganze ist natürlich nur die Halbe Wahrheit.<br />
Ich möchte die Formulare über eine Schnittstelle ansprechen.<br />
Und das soll so gehen.</p>
<pre><code class="language-cpp">struct allgemeinForm
{ virtual void Schnittstelle() = 0;
};

class MyVCLForm : public TForm, virtual public allgemeinForm
{ ...
};

class MyForm : virtual public allgemeinForm
{ //Code zum Steuern der Form
};

class  FertigeForm : public MyVCLForm, public MyForm
{
};
</code></pre>
<p>Der Sinn des Ganze besteht darin, das ich meine VCL Formulare dann leichter durch Intrawebformulare austauschen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076761</guid><dc:creator><![CDATA[gh]]></dc:creator><pubDate>Tue, 13 Jun 2006 09:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to virtuelle Basisklasse mit der VCL on Tue, 13 Jun 2006 12:52:36 GMT]]></title><description><![CDATA[<p>Warum erbt fertigeForm zweimal? Auf diese Weise erbst du doppelt von allgemeinForm (Diamond of Death). Sowas sollte man unbedingt vermeiden. Ich sehe hier auch keinen Sinn drin.<br />
Hast du effective C++ von Meyers gelesen? Da gibt es ein schönes Kapitel darüber.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076866</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 13 Jun 2006 12:52:36 GMT</pubDate></item></channel></rss>