<?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[abstrakte Klassen]]></title><description><![CDATA[<p>Warum geht das nicht?<br />
&quot;B&quot; ist doch jetzt nicht mehr abstrakt oder, sondern nur &quot;A&quot; und &quot;temp&quot;.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class temp
{
    virtual void speak() = 0;
    virtual void reproduce() = 0;
    virtual void laugh() = 0;
};

class A : public temp
{
    public:
    void reproduce();
};

class B : public A
{
    public:
    void speak();
    void laugh();
};

int main()
{
    B obj;

    return 0;
}
</code></pre>
<p>FEHLERMELDUNG:</p>
<blockquote>
<p>Compiling: C:\MinGW\Andi\test.cpp<br />
Linking console executable: C:\MinGW\Andi\test.exe<br />
C:\MinGW\Andi\test.o:test.cpp:(.text_ZN1BC1Ev\[B::B()\]+0x16): undefined reference to `vtable for B'  
C:\\MinGW\\Andi\\test.o:test.cpp:(.text_ZN1AC2Ev[A::A()]+0x16): undefined reference to `vtable for A'<br />
collect2: ld returned 1 exit status<br />
Process terminated with status 1 (0 minutes, 0 seconds)<br />
0 errors, 0 warnings</p>
<p>Checking for existence: C:\MinGW\Andi\test.exe</p>
</blockquote>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192991/abstrakte-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 17:26:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192991.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Sep 2007 18:02:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to abstrakte Klassen on Thu, 20 Sep 2007 18:02:30 GMT]]></title><description><![CDATA[<p>Warum geht das nicht?<br />
&quot;B&quot; ist doch jetzt nicht mehr abstrakt oder, sondern nur &quot;A&quot; und &quot;temp&quot;.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class temp
{
    virtual void speak() = 0;
    virtual void reproduce() = 0;
    virtual void laugh() = 0;
};

class A : public temp
{
    public:
    void reproduce();
};

class B : public A
{
    public:
    void speak();
    void laugh();
};

int main()
{
    B obj;

    return 0;
}
</code></pre>
<p>FEHLERMELDUNG:</p>
<blockquote>
<p>Compiling: C:\MinGW\Andi\test.cpp<br />
Linking console executable: C:\MinGW\Andi\test.exe<br />
C:\MinGW\Andi\test.o:test.cpp:(.text_ZN1BC1Ev\[B::B()\]+0x16): undefined reference to `vtable for B'  
C:\\MinGW\\Andi\\test.o:test.cpp:(.text_ZN1AC2Ev[A::A()]+0x16): undefined reference to `vtable for A'<br />
collect2: ld returned 1 exit status<br />
Process terminated with status 1 (0 minutes, 0 seconds)<br />
0 errors, 0 warnings</p>
<p>Checking for existence: C:\MinGW\Andi\test.exe</p>
</blockquote>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369587</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klassen on Thu, 20 Sep 2007 18:13:21 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Warum geht das nicht?</p>
</blockquote>
<p>Es geht doch. Nur beschwert sich der Linker, dass deine überschreibenden Funktionen nicht definiert wurden. Virtuelle Funktionen, die nicht rein-virtuell sind, müssen auch dann definiert werden, wenn sie nicht benutzt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369602</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klassen on Thu, 20 Sep 2007 18:50:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// #include &lt;iostream&gt; nicht genutzt
// using namespace std; // NIE im Header

class base
{
public:
    base() {}
    virtual ~base() {}

public:
    virtual void speak() {};
    virtual void reproduce() {};
    virtual void laugh() {};
};

class foo : public base
{
public:
    void reproduce();
};

class bar : public base
{
public:
    void speak();
    void laugh();
};
</code></pre>
<p>und der hält die Klappe <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>
<pre><code class="language-cpp">#include &lt;vector&gt;

int main()
{
    std::vector&lt;base*&gt; data;
    B _obj;
    data.push_back(&amp;_obj);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1369642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369642</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klassen on Thu, 20 Sep 2007 19:11:16 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>und der hält die Klappe <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>
</blockquote>
<p>Da gibt's rein gar nichts zu &quot;;)&quot;, denn das ist genau das Problem deiner Variante.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369661</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 20 Sep 2007 19:11:16 GMT</pubDate></item></channel></rss>