<?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[implements?]]></title><description><![CDATA[<p>Hi, ich hab mehrere klassen, die ich über eine managerklasse verwalten will. da sich die klassen relativ ähnlich sind, hab ich mir überlegt, dass sie ja das selbe &quot;interface&quot; implementieren könnten( java ausdruck :/), damit die managerklasse nicht jedes objekt unterschiedlichbehandeln muss. hat jmd nen link für ein tutorial wie das in c++ geht? und können die klassen, die das interface implementieren auch noch andere methoden anbieten, die im interface nicht deklariert sind?</p>
<p>edit: ah ok ich muss also von ner klasse mit virtuellen methoden erben, aber wie definiere ich z.B. nen virtuellen cton / copy cton ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187047/implements</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:37:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187047.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jul 2007 08:24:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 08:32:30 GMT]]></title><description><![CDATA[<p>Hi, ich hab mehrere klassen, die ich über eine managerklasse verwalten will. da sich die klassen relativ ähnlich sind, hab ich mir überlegt, dass sie ja das selbe &quot;interface&quot; implementieren könnten( java ausdruck :/), damit die managerklasse nicht jedes objekt unterschiedlichbehandeln muss. hat jmd nen link für ein tutorial wie das in c++ geht? und können die klassen, die das interface implementieren auch noch andere methoden anbieten, die im interface nicht deklariert sind?</p>
<p>edit: ah ok ich muss also von ner klasse mit virtuellen methoden erben, aber wie definiere ich z.B. nen virtuellen cton / copy cton ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325666</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 08:32:30 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 09:02:21 GMT]]></title><description><![CDATA[<p>ja am besten ist es, wenn du von einer rein Klasse mit rein virtuellen methoden erbst, das ist dann fast das gleicher, wie in java das Interface, nur dass es in C++ kein eigenen namen hat. Ich gebe hier mal ein beispiel</p>
<pre><code class="language-cpp">class MyInterface{
public:
    virtual ~MyInterface(){}
    virtual int method1(int) = 0;
    virtual void method2() = 0;
};
</code></pre>
<p>wichtig ist der virtuelle destruktor (am besten immer machen).<br />
das &quot;= 0&quot; zeigt, dass die methoden erst in abgeleiteten Klassen implementiert werden. Von solchen Klassen können keine objekte erzeugt werden, aber was funktioniert ist folgendes, wenn das Interface in MyImplementation_a und MyImplementation_b implementiert wurde (vererbt):</p>
<pre><code class="language-cpp">MyInterface *mi1 = new MyImplementation_a();
MyInterface *mi2 = new MyImplementation_b();

delete mi1;
delete mi2;
</code></pre>
<p>das kommt dann schon sehr nah an die Java-Schreibweise ran, dur dass man den speicher noch manuell freigeben muss, denn den Garbage-Collector gibt es hier nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325671</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 08:56:05 GMT]]></title><description><![CDATA[<p>konstruktor brauchts dann keinen richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325672</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 08:56:05 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 09:01:38 GMT]]></title><description><![CDATA[<p>ne konstruktor funktioniert auch nicht, denn man kann ja sowiso keine MyInterface Objekter erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325673</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:01:38 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 09:13:46 GMT]]></title><description><![CDATA[<p>ok ich hab grad beim compilen so um die 200 fehler und warnungen xD</p>
<p>erstes problem:</p>
<p>in meine klasse &quot;SDL_Dropdown&quot; die von SDL_Input erbt, erstelle ich private folgendes:</p>
<pre><code class="language-cpp">SDL_Input ddMain;	
std::list&lt;SDL_Input&gt; ddButtons;
</code></pre>
<p>das ist der hauptbutton und die unterbuttons vom dropdownfeld. den variablen vom typ &quot;SDL_Input&quot; werden später objekte vom typ &quot;SDL_Button&quot; zugewiesen, wobei &quot;SDL_Button&quot; auch von &quot;SDL_Input&quot; erbt. ich bekomme folgenden fehler:</p>
<blockquote>
<p>e:\uni\code\pixgraph\sdl_dropdown.h(42) : error C2259: &quot;SDL_Input&quot; : Instanz von abstrakter Klasse kann aufgrund nachfolgender Elemente nicht erstellt werden:<br />
e:\uni\code\pixgraph\sdl_input.h(5) : Siehe Deklaration von 'SDL_Input'</p>
</blockquote>
<p>aber ich erstelle doch garkeine instanz, ich definiere doch nur nen variablentyp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325680</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 09:23:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::list&lt;SDL_Input&gt;
</code></pre>
<p>kann nicht funktionieren, wenn SDL_Input abstrakt ist (ein Interface), du musst eine liste mit pointern haben, also sowas:</p>
<pre><code class="language-cpp">std::list&lt;SDL_Input*&gt;
</code></pre>
<p>nur dann kannst du auch mit new und delete arbeiten<br />
(new und delete funktioniert nur mit pointern und SDL_Input kann es nur als pointer geben.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325683</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 09:22:40 GMT]]></title><description><![CDATA[<p>pixartist! Du hast vorher Java gemacht? Dann vergiss Java-Denkweise in C++. Du hast sehr wohl eine Variable angelegt. In C++ sind komplexe Typen gleich wie native Typen:</p>
<pre><code class="language-cpp">SDL_Input a;
// ist gleich bedeutend wie:
int a;
</code></pre>
<p>Egal ob nativ oder komplex, die Syntax sagt und macht das gleiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325684</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 09:25:32 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>pixartist! Du hast vorher Java gemacht? Dann vergiss Java-Denkweise in C++. Du hast sehr wohl eine Variable angelegt. In C++ sind komplexe Typen gleich wie native Typen:</p>
<pre><code class="language-cpp">SDL_Input a;
// ist gleich bedeutend wie:
int a;
</code></pre>
<p>Egal ob nativ oder komplex, die Syntax sagt und macht das gleiche.</p>
</blockquote>
<p>nicht ganz, ich kann beispielsweise nicht den operator % für flieskommatypen überschreiben. Aber das hiest nicht, dass man bei der Java denkweise bleiben sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325685</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 11:41:34 GMT]]></title><description><![CDATA[<p>wenn aber die erbende klasse mehr methoden/ variable hat als die vererbende (virtuelle) macht dann der pointer nicht zu wenig platz frei?</p>
<p>och man wie beknackt ist das denn <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>wenn ich folgendes mache:</p>
<pre><code class="language-cpp">class a
{
public:
   foo();
};

class b : public a
{
public:
   foo();
   bar();
};

a* obj = new b();
obj-&gt;bar();
</code></pre>
<p>dann krieg ich nen fehler Oo<br />
wie soll ich denn das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325764</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 11:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 11:39:27 GMT]]></title><description><![CDATA[<p>hola</p>
<p>pixartist schrieb:</p>
<blockquote>
<p>wenn aber die erbende klasse mehr methoden/ variable hat als die vererbende (virtuelle) macht dann der pointer nicht zu wenig platz frei?</p>
</blockquote>
<p>etwas ungluecklich ausgedrueckt. delete gibt den speicher frei.<br />
Nachdem du aber mit</p>
<pre><code class="language-cpp">MyInterface *mi1 = new MyImplementation_a();
</code></pre>
<p>speichergeholt hast, weiß delete das es speicher fuer 'MyImplementation_a' wieder freigeben muss.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325772</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sun, 15 Jul 2007 11:39:27 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 12:11:49 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<p>och man wie beknackt ist das denn <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>wenn ich folgendes mache:</p>
<pre><code class="language-cpp">class a
{
public:
   foo();
};

class b : public a
{
public:
   foo();
   bar();
};

a* obj = new b();
obj-&gt;bar();
</code></pre>
<p>dann krieg ich nen fehler Oo<br />
wie soll ich denn das machen?</p>
</blockquote>
<p>obj wieder auf b casten. du greifst über nen pointer vom typ a drauf zu und a kennt die methode bar nicht. da c++ aber weder sowas wie instanceof noch reflection kennt, muss man sich bei solchen sachen halt was ausdenken. vielleicht nen enum mit dem typ der klasse im &quot;interface&quot; mitschleppen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325792</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sun, 15 Jul 2007 12:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 12:34:00 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>nicht ganz, ich kann beispielsweise nicht den operator % für flieskommatypen überschreiben. Aber das hiest nicht, dass man bei der Java denkweise bleiben sollte.</p>
</blockquote>
<p>Was hat das damit zu tun?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325806</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 15 Jul 2007 12:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 12:40:30 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Krux schrieb:</p>
<blockquote>
<p>nicht ganz, ich kann beispielsweise nicht den operator % für flieskommatypen überschreiben. Aber das hiest nicht, dass man bei der Java denkweise bleiben sollte.</p>
</blockquote>
<p>Was hat das damit zu tun?!</p>
</blockquote>
<p>c++ erlaubt es nicht, operatoren für primitive typen zu überschreiben. (es ging um den unterschied zwischen primitiven und eigenen typen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325815</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sun, 15 Jul 2007 12:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 13:26:48 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>pixartist schrieb:</p>
<blockquote>
<p>och man wie beknackt ist das denn <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>wenn ich folgendes mache:</p>
<pre><code class="language-cpp">class a
{
public:
   foo();
};

class b : public a
{
public:
   foo();
   bar();
};

a* obj = new b();
obj-&gt;bar();
</code></pre>
<p>dann krieg ich nen fehler Oo<br />
wie soll ich denn das machen?</p>
</blockquote>
<p>obj wieder auf b casten. du greifst über nen pointer vom typ a drauf zu und a kennt die methode bar nicht. da c++ aber weder sowas wie instanceof noch reflection kennt, muss man sich bei solchen sachen halt was ausdenken. vielleicht nen enum mit dem typ der klasse im &quot;interface&quot; mitschleppen.</p>
</blockquote>
<p>kannst du mir daq n beispiel geben ?</p>
<p>würde das gehen:</p>
<pre><code class="language-cpp">((b*)obj)-&gt;bar();
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325850</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 13:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 13:37:12 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<p>würde das gehen:</p>
<pre><code class="language-cpp">((b*)obj)-&gt;bar();
</code></pre>
<p>?</p>
</blockquote>
<p>Merke: C-Casts in C++ stinken. Verwende 'static_cast' oder 'dynamic_cast' (letzteres nur, wenn Du nicht weißt, welchen Typ das Objekt hat).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325859</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 15 Jul 2007 13:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 14:22:05 GMT]]></title><description><![CDATA[<p>du musst alle methoden, die du über einen pointer auf eine Klasse erreichbar haben möchtest auch in dieser bereitspellen, das ist auch in Java nicht anders, und da den cast den du da vorgeschlagen hast, vergess den schnell wieder, das ist müll. wenn du sowiso weist, was für ein datentyp das ist, und du auch alle methoden dieses Datentyps nutzen möchtest, dann verwende gleich eine Variable von genau dem typ, und nicht von der superklasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325894</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 15 Jul 2007 14:22:05 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 14:32:43 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>du musst alle methoden, die du über einen pointer auf eine Klasse erreichbar haben möchtest auch in dieser bereitspellen, das ist auch in Java nicht anders, und da den cast den du da vorgeschlagen hast, vergess den schnell wieder, das ist müll. wenn du sowiso weist, was für ein datentyp das ist, und du auch alle methoden dieses Datentyps nutzen möchtest, dann verwende gleich eine Variable von genau dem typ, und nicht von der superklasse.</p>
</blockquote>
<p>1. java kennt keine pointer<br />
2. bei java hat eine variable einen statischen und einen variablen typ, man kann auf alle methoden des dynamischen typs zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325907</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 14:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 14:37:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class a
{
public:
   foo();
};

class b : public a
{
public:
   foo();
   bar();
};
</code></pre>
<p>wieso geht hier denn folgendes nicht?</p>
<pre><code class="language-cpp">b obj;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325911</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sun, 15 Jul 2007 14:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Sun, 15 Jul 2007 14:42:30 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<p>1. java kennt keine pointer<br />
2. bei java hat eine variable einen statischen und einen variablen typ, man kann auf alle methoden des dynamischen typs zugreifen.</p>
</blockquote>
<p>Beides Quatsch. Java nennt Zeiger lediglich Referenzen und die zweite Aussage ist einfach nur komisch.</p>
<p>pixartist schrieb:</p>
<blockquote>
<p>wieso geht hier denn folgendes nicht?</p>
<pre><code class="language-cpp">b obj;
</code></pre>
<p>?</p>
</blockquote>
<p>Weil die Klassendeklarationen falsch sind. Die Funktionen brauchen Rückgabetypen.</p>
<p>/EDIT: Oh, hatte &quot;Teil&quot; statt &quot;Typ&quot; gelesen. Na gut, dann ergibt die zweite Aussage natürlich trotzdem Sinn. Aber für C++ gilt dasselbe (zumindest für Zeiger und Referenzen)!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325914</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 15 Jul 2007 14:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 08:55:40 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>pixartist schrieb:</p>
<blockquote>
<p>wieso geht hier denn folgendes nicht?</p>
<pre><code class="language-cpp">b obj;
</code></pre>
<p>?</p>
</blockquote>
<p>Weil die Klassendeklarationen falsch sind. Die Funktionen brauchen Rückgabetypen.</p>
</blockquote>
<p>hä wie? versteh ich ned</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326351</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 16 Jul 2007 08:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 08:59:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
  public:
  void foo();
};

int main() {
  A a;
}
</code></pre>
<p>wenn man sowas durch den compiler jagt, meckert er, dass A incomplete sei (die implementierung von foo fehlt). und da du nur &quot;geht nicht&quot; geschrieben hast, war das wohl seine vermutung, was der fehler sein könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326357</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Mon, 16 Jul 2007 08:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 09:01:19 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>wenn man sowas durch den compiler jagt, meckert er, dass A incomplete sei (die implementierung von foo fehlt).</p>
</blockquote>
<p>Nö, wieso sollte er. Hier meckert höchstens der Linker.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6059">@pixartist</a>:<br />
Auch in Java darf es keine Funktionen geben, die nichts zurückgeben, oder? Dasselbe gilt in C++.<br />
(z.B. wäre &quot;public Test()&quot; nur gültig wenn die Klasse &quot;Test&quot; heisst.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326361</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 16 Jul 2007 09:01:19 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 09:02:21 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>wenn man sowas durch den compiler jagt, meckert er, dass A incomplete sei (die implementierung von foo fehlt).</p>
</blockquote>
<p>Über den Code beschwert sich der Compiler überhaupt nicht (der geht davon aus, daß die Methodendefinition schon irgendwo existieren wird) - darüber beschwert sich höchstens der Linker, wenn er die Definition nicht findet.</p>
<p>Der Compiler beschwert sich höchstens über incomplete Typen, wenn du eine Variable anhand einer Forward-Deklaration anlegen willst:</p>
<pre><code class="language-cpp">class A;

A obj;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1326365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326365</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Jul 2007 09:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 09:25:29 GMT]]></title><description><![CDATA[<p>argh nein sry ihr habt mich falsch verstanden</p>
<pre><code class="language-cpp">class a 
{ 
public: 
   virtual foo() = 0; 
}; 

class b : public a 
{ 
public: 
   foo(); 
   bar(); 
}; 

b::foo()
{
//bla
}
b::bar()
{
//blub
}

b test; //hier meckert der bei mir
</code></pre>
<blockquote>
<p>error C2259: &quot;b&quot; : Instanz von abstrakter Klasse kann aufgrund nachfolgender Elemente nicht erstellt werden:<br />
Siehe Deklaration von 'b'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1326375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326375</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 16 Jul 2007 09:25:29 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 09:30:13 GMT]]></title><description><![CDATA[<p>Das ändert nix daran, dass der Code falsch ist. Du musst die Funktionen nach wie vor mit einem Rückgabetyp deklarieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326379</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 16 Jul 2007 09:30:13 GMT</pubDate></item><item><title><![CDATA[Reply to implements? on Mon, 16 Jul 2007 09:31:20 GMT]]></title><description><![CDATA[<p>jaja, der linker ihr korinthenkacker :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326380</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Mon, 16 Jul 2007 09:31:20 GMT</pubDate></item></channel></rss>