<?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[Pure virtual Destructor -&amp;gt; Linker Error]]></title><description><![CDATA[<p>Hoi,<br />
bin nicht mehr 100% fit in C++ und ärgere mich gerade fürchterlich über einen Linkerfehler. <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>
<p>Das habe ich deklariert:</p>
<pre><code>class SharedLibrary {
   public:
      virtual ~SharedLibrary() = 0;
      virtual void* getSymbol(char const* name) = 0;
   };
   typedef std::shared_ptr&lt;SharedLibrary&gt; SharedLibraryPtr;

   SharedLibraryPtr loadSharedLibrary(char const* path);
</code></pre>
<p>Der Linker straft mich wie folgt ab:</p>
<pre><code>undefined reference to `ed::SharedLibrary::~SharedLibrary()'
</code></pre>
<p>Wie kommt er darauf, was übersehe ich?</p>
<p>Danke schon mal &amp; schöne Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332272/pure-virtual-destructor-gt-linker-error</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 05:14:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332272.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Apr 2015 10:55:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 10:55:07 GMT]]></title><description><![CDATA[<p>Hoi,<br />
bin nicht mehr 100% fit in C++ und ärgere mich gerade fürchterlich über einen Linkerfehler. <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>
<p>Das habe ich deklariert:</p>
<pre><code>class SharedLibrary {
   public:
      virtual ~SharedLibrary() = 0;
      virtual void* getSymbol(char const* name) = 0;
   };
   typedef std::shared_ptr&lt;SharedLibrary&gt; SharedLibraryPtr;

   SharedLibraryPtr loadSharedLibrary(char const* path);
</code></pre>
<p>Der Linker straft mich wie folgt ab:</p>
<pre><code>undefined reference to `ed::SharedLibrary::~SharedLibrary()'
</code></pre>
<p>Wie kommt er darauf, was übersehe ich?</p>
<p>Danke schon mal &amp; schöne Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450848</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 19 Apr 2015 10:55:07 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 10:57:55 GMT]]></title><description><![CDATA[<p>Destruktor muss immer implementiert werden, auch wenn pure virtual.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450849</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 19 Apr 2015 10:57:55 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 11:40:40 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Destruktor muss immer implementiert werden, auch wenn pure virtual.</p>
</blockquote>
<p>Danke!</p>
<p>Weiß jemand warum? Finde das herzlich sinnfrei. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450854</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 19 Apr 2015 11:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 12:36:58 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>out schrieb:</p>
<blockquote>
<p>Destruktor muss immer implementiert werden, auch wenn pure virtual.</p>
</blockquote>
<p>Danke!</p>
<p>Weiß jemand warum? Finde das herzlich sinnfrei. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Naja, der Destruktor der abgeleiteten Klasse ruft den der Basisklasse auf, dann muss halt was zum Aufrufen da sein.</p>
<p>Natürlich kannst du die Implementation des Destruktors weglassen, dann kannst du aber auch niemals ein Objekt einer abgeleiteten Klasse erstellen, also sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450856</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 19 Apr 2015 12:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 12:39:36 GMT]]></title><description><![CDATA[<p>Weil der nach dem Destruktor der abgeleiteten Klasse aufgerufen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450857</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Sun, 19 Apr 2015 12:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 19:12:49 GMT]]></title><description><![CDATA[<pre><code>class SharedLibrary {
   public:
      virtual ~SharedLibrary() = 0 {};
      virtual void* getSymbol(char const* name) = 0;
   };
   typedef std::shared_ptr&lt;SharedLibrary&gt; SharedLibraryPtr;

   SharedLibraryPtr loadSharedLibrary(char const* path);
</code></pre>
<p>geht</p>
<p>was ich eigentlich auch gar nicht schlecht finde, wenn man sowas schreibt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450892</guid><dc:creator><![CDATA[JulianH]]></dc:creator><pubDate>Sun, 19 Apr 2015 19:12:49 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 19:21:01 GMT]]></title><description><![CDATA[<p>@MrLong: Ne, ist Quatsch. Wird auch im Standard explizit in einer Notiz angesprochen:</p>
<p>[class.abstract]/2 schrieb:</p>
<blockquote>
<p>[ <em>Note:</em> A function declaration cannot provide both a pure-specifier and a definition — <em>end note</em> ] [ <em>Example</em>:</p>
<pre><code>struct C {
  virtual void f() = 0 { }; // ill-formed
};
</code></pre>
<p><em>— end example</em> ]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2450894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450894</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 19 Apr 2015 19:21:01 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 19:23:00 GMT]]></title><description><![CDATA[<p>Ahjo, das mit der Destruktor-Chain macht Sinn, daran habe ich nicht gedacht, danke. <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>
<p>Ich habe es einfach gegen default ausgetauscht und gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450896</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 19 Apr 2015 19:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Pure virtual Destructor -&amp;gt; Linker Error on Sun, 19 Apr 2015 19:46:07 GMT]]></title><description><![CDATA[<p>ok dann ist das wohl ne MS Extension - wieder was gelernt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450900</guid><dc:creator><![CDATA[JulianH]]></dc:creator><pubDate>Sun, 19 Apr 2015 19:46:07 GMT</pubDate></item></channel></rss>