<?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[Templates: Linkerproblem mit aufzurufender Methode in Basis-Templateklasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Klassentemplate für eine QList:</p>
<pre><code>template &lt;class T&gt; class dList : public QList&lt;T*&gt; {
public:
   dList(T* t) { QList&lt;T*&gt;::append(t); }
   int qSort(int comp_(T*,T*,void *),void *data=NULL){
     return qSort(this,comp_,data); 
   }
   int qSort(dList&lt;T&gt; *iList,int comp_(T*,T*,void *),void *data = NULL);
};
</code></pre>
<p>Um mir den Aufruf der qSort-Methode zu vereinfachen, ist die Methode im Template oben überschrieben.<br />
Die qSort-Methode habe ich auch in der gleichen Header-Datei definiert, damit der Linker das nicht anmeckert:</p>
<pre><code>template &lt;class T&gt; int qSort(dList&lt;T&gt; *iList,int comp_(T*,T*,void *),void *data){
....
return 1;
}
</code></pre>
<p>Jetzt habe ich eine abgeleitete Templateklasse, die das Klassentemplate spezialisiert:</p>
<pre><code>class ArrDlist: public dList&lt;DNode&gt;{
    public:
    ArrDlist();
};
</code></pre>
<p>Wenn ich jetzt versuche, die qSort-Methode mit der Vergleichsfunktion aufzurufen, macht der Linker allerdings Probleme:</p>
<pre><code>int compNode(DNode* a, DNode* b, void *) {
    return 0;
}
ArrDlist::ArrDlist(): dList&lt;DNode&gt;(){
   dList&lt;DNode&gt;::qSort(compNode);
}

int main(int argc, char *argv[])
{
   ArrDlist* array = new ArrDlist();
}
</code></pre>
<p>Der Linker-Fehler:</p>
<blockquote>
<p>main.obj<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: int __thiscall dList&lt;class DNode&gt;::qSort(class dList&lt;class DNode&gt; <em>,int (__cdecl</em>)(class DNode *,class DNode *,void *),void *)&quot; (?qSort@?<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>d</mi><mi>L</mi><mi>i</mi><mi>s</mi><mi>t</mi><mi mathvariant="normal">@</mi><mi>V</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>Q</mi><mi>A</mi><mi>E</mi><mi>H</mi><mi>P</mi><mi>A</mi><mi>V</mi><mn>1</mn><mi mathvariant="normal">@</mi><mi>P</mi><mn>6</mn><mi>A</mi><mi>H</mi><mi>P</mi><mi>A</mi><mi>V</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mn>1</mn><mi>P</mi><mi>A</mi><mi>X</mi><mi mathvariant="normal">@</mi><mi>Z</mi><mn>2</mn><mi mathvariant="normal">@</mi><mi>Z</mi><mo>)</mo><mi mathvariant="normal">&quot;</mi><mi>i</mi><mi>n</mi><mi>F</mi><mi>u</mi><mi>n</mi><mi>k</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mi mathvariant="normal">&quot;</mi><mi mathvariant="normal">&quot;</mi><mi>p</mi><mi>u</mi><mi>b</mi><mi>l</mi><mi>i</mi><mi>c</mi><mo>:</mo><mi>i</mi><mi>n</mi><mi>t</mi><mi mathvariant="normal">_</mi><mi mathvariant="normal">_</mi><mi>t</mi><mi>h</mi><mi>i</mi><mi>s</mi><mi>c</mi><mi>a</mi><mi>l</mi><mi>l</mi><mi>d</mi><mi>L</mi><mi>i</mi><mi>s</mi><mi>t</mi><mo>&lt;</mo><mi>c</mi><mi>l</mi><mi>a</mi><mi>s</mi><mi>s</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>&gt;</mo><mo>:</mo><mo>:</mo><mi>q</mi><mi>S</mi><mi>o</mi><mi>r</mi><mi>t</mi><mo>(</mo><mi>i</mi><mi>n</mi><mi>t</mi><mo>(</mo><mi mathvariant="normal">_</mi><mi mathvariant="normal">_</mi><mi>c</mi><mi>d</mi><mi>e</mi><mi>c</mi><mi>l</mi><mo>∗</mo><mo>)</mo><mo>(</mo><mi>c</mi><mi>l</mi><mi>a</mi><mi>s</mi><mi>s</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>∗</mo><mo separator="true">,</mo><mi>c</mi><mi>l</mi><mi>a</mi><mi>s</mi><mi>s</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>∗</mo><mo separator="true">,</mo><mi>v</mi><mi>o</mi><mi>i</mi><mi>d</mi><mo>∗</mo><mo>)</mo><mo separator="true">,</mo><mi>v</mi><mi>o</mi><mi>i</mi><mi>d</mi><mo>∗</mo><mo>)</mo><mi mathvariant="normal">&quot;</mi><mo>(</mo><mo>?</mo><mi>q</mi><mi>S</mi><mi>o</mi><mi>r</mi><mi>t</mi><mi mathvariant="normal">@</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">dList@VDNode@@@@QAEHPAV1@P6AHPAVDNode@@1PAX@Z2@Z)&quot; in Funktion &quot;&quot;public: int \_\_thiscall dList&lt;class DNode&gt;::qSort(int (\_\_cdecl*)(class DNode *,class DNode *,void *),void *)&quot; (?qSort@?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.06em;vertical-align:-0.31em;"></span><span class="base textstyle uncramped"><span class="mord mathit">d</span><span class="mord mathit">L</span><span class="mord mathit">i</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit">Q</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathrm">1</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathrm">6</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">1</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.07847em;">X</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.07153em;">Z</span><span class="mord mathrm">2</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.07153em;">Z</span><span class="mclose">)</span><span class="mord mathrm">&quot;</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.13889em;">F</span><span class="mord mathit">u</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mord mathit">t</span><span class="mord mathit">i</span><span class="mord mathit">o</span><span class="mord mathit">n</span><span class="mord mathrm">&quot;</span><span class="mord mathrm">&quot;</span><span class="mord mathit">p</span><span class="mord mathit">u</span><span class="mord mathit">b</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">i</span><span class="mord mathit">c</span><span class="mrel">:</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit">t</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathit">t</span><span class="mord mathit">h</span><span class="mord mathit">i</span><span class="mord mathit">s</span><span class="mord mathit">c</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">d</span><span class="mord mathit">L</span><span class="mord mathit">i</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mrel">&lt;</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mrel">&gt;</span><span class="mrel">:</span><span class="mrel">:</span><span class="mord mathit" style="margin-right:0.03588em;">q</span><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">t</span><span class="mopen">(</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit">t</span><span class="mopen">(</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathit">c</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mbin">∗</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mbin">∗</span><span class="mpunct">,</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mbin">∗</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="mord mathit">o</span><span class="mord mathit">i</span><span class="mord mathit">d</span><span class="mbin">∗</span><span class="mclose">)</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="mord mathit">o</span><span class="mord mathit">i</span><span class="mord mathit">d</span><span class="mbin">∗</span><span class="mclose">)</span><span class="mord mathrm">&quot;</span><span class="mopen">(</span><span class="mclose">?</span><span class="mord mathit" style="margin-right:0.03588em;">q</span><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">t</span><span class="mord mathrm">@</span><span class="mclose">?</span></span></span></span>dList@VDNode@@@@QAEHP6AHPAVDNode@@0PAX@Z1@Z)&quot;.</p>
</blockquote>
<p>Allerdings ist meinerserachtens der Aufruf korrekt und die Parameter stimmen auch, die der Linker aufführt. Woran könnte es noch liegen?</p>
<p>Vielen Dank für eure Hilfe.</p>
<p>Gruß,</p>
<p>Tobias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/317704/templates-linkerproblem-mit-aufzurufender-methode-in-basis-templateklasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 14:20:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317704.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Jun 2013 08:54:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates: Linkerproblem mit aufzurufender Methode in Basis-Templateklasse on Tue, 18 Jun 2013 08:54:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Klassentemplate für eine QList:</p>
<pre><code>template &lt;class T&gt; class dList : public QList&lt;T*&gt; {
public:
   dList(T* t) { QList&lt;T*&gt;::append(t); }
   int qSort(int comp_(T*,T*,void *),void *data=NULL){
     return qSort(this,comp_,data); 
   }
   int qSort(dList&lt;T&gt; *iList,int comp_(T*,T*,void *),void *data = NULL);
};
</code></pre>
<p>Um mir den Aufruf der qSort-Methode zu vereinfachen, ist die Methode im Template oben überschrieben.<br />
Die qSort-Methode habe ich auch in der gleichen Header-Datei definiert, damit der Linker das nicht anmeckert:</p>
<pre><code>template &lt;class T&gt; int qSort(dList&lt;T&gt; *iList,int comp_(T*,T*,void *),void *data){
....
return 1;
}
</code></pre>
<p>Jetzt habe ich eine abgeleitete Templateklasse, die das Klassentemplate spezialisiert:</p>
<pre><code>class ArrDlist: public dList&lt;DNode&gt;{
    public:
    ArrDlist();
};
</code></pre>
<p>Wenn ich jetzt versuche, die qSort-Methode mit der Vergleichsfunktion aufzurufen, macht der Linker allerdings Probleme:</p>
<pre><code>int compNode(DNode* a, DNode* b, void *) {
    return 0;
}
ArrDlist::ArrDlist(): dList&lt;DNode&gt;(){
   dList&lt;DNode&gt;::qSort(compNode);
}

int main(int argc, char *argv[])
{
   ArrDlist* array = new ArrDlist();
}
</code></pre>
<p>Der Linker-Fehler:</p>
<blockquote>
<p>main.obj<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: int __thiscall dList&lt;class DNode&gt;::qSort(class dList&lt;class DNode&gt; <em>,int (__cdecl</em>)(class DNode *,class DNode *,void *),void *)&quot; (?qSort@?<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>d</mi><mi>L</mi><mi>i</mi><mi>s</mi><mi>t</mi><mi mathvariant="normal">@</mi><mi>V</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>Q</mi><mi>A</mi><mi>E</mi><mi>H</mi><mi>P</mi><mi>A</mi><mi>V</mi><mn>1</mn><mi mathvariant="normal">@</mi><mi>P</mi><mn>6</mn><mi>A</mi><mi>H</mi><mi>P</mi><mi>A</mi><mi>V</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mn>1</mn><mi>P</mi><mi>A</mi><mi>X</mi><mi mathvariant="normal">@</mi><mi>Z</mi><mn>2</mn><mi mathvariant="normal">@</mi><mi>Z</mi><mo>)</mo><mi mathvariant="normal">&quot;</mi><mi>i</mi><mi>n</mi><mi>F</mi><mi>u</mi><mi>n</mi><mi>k</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mi mathvariant="normal">&quot;</mi><mi mathvariant="normal">&quot;</mi><mi>p</mi><mi>u</mi><mi>b</mi><mi>l</mi><mi>i</mi><mi>c</mi><mo>:</mo><mi>i</mi><mi>n</mi><mi>t</mi><mi mathvariant="normal">_</mi><mi mathvariant="normal">_</mi><mi>t</mi><mi>h</mi><mi>i</mi><mi>s</mi><mi>c</mi><mi>a</mi><mi>l</mi><mi>l</mi><mi>d</mi><mi>L</mi><mi>i</mi><mi>s</mi><mi>t</mi><mo>&lt;</mo><mi>c</mi><mi>l</mi><mi>a</mi><mi>s</mi><mi>s</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>&gt;</mo><mo>:</mo><mo>:</mo><mi>q</mi><mi>S</mi><mi>o</mi><mi>r</mi><mi>t</mi><mo>(</mo><mi>i</mi><mi>n</mi><mi>t</mi><mo>(</mo><mi mathvariant="normal">_</mi><mi mathvariant="normal">_</mi><mi>c</mi><mi>d</mi><mi>e</mi><mi>c</mi><mi>l</mi><mo>∗</mo><mo>)</mo><mo>(</mo><mi>c</mi><mi>l</mi><mi>a</mi><mi>s</mi><mi>s</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>∗</mo><mo separator="true">,</mo><mi>c</mi><mi>l</mi><mi>a</mi><mi>s</mi><mi>s</mi><mi>D</mi><mi>N</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>∗</mo><mo separator="true">,</mo><mi>v</mi><mi>o</mi><mi>i</mi><mi>d</mi><mo>∗</mo><mo>)</mo><mo separator="true">,</mo><mi>v</mi><mi>o</mi><mi>i</mi><mi>d</mi><mo>∗</mo><mo>)</mo><mi mathvariant="normal">&quot;</mi><mo>(</mo><mo>?</mo><mi>q</mi><mi>S</mi><mi>o</mi><mi>r</mi><mi>t</mi><mi mathvariant="normal">@</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">dList@VDNode@@@@QAEHPAV1@P6AHPAVDNode@@1PAX@Z2@Z)&quot; in Funktion &quot;&quot;public: int \_\_thiscall dList&lt;class DNode&gt;::qSort(int (\_\_cdecl*)(class DNode *,class DNode *,void *),void *)&quot; (?qSort@?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.06em;vertical-align:-0.31em;"></span><span class="base textstyle uncramped"><span class="mord mathit">d</span><span class="mord mathit">L</span><span class="mord mathit">i</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit">Q</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathrm">1</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathrm">6</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">1</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.07847em;">X</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.07153em;">Z</span><span class="mord mathrm">2</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.07153em;">Z</span><span class="mclose">)</span><span class="mord mathrm">&quot;</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.13889em;">F</span><span class="mord mathit">u</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mord mathit">t</span><span class="mord mathit">i</span><span class="mord mathit">o</span><span class="mord mathit">n</span><span class="mord mathrm">&quot;</span><span class="mord mathrm">&quot;</span><span class="mord mathit">p</span><span class="mord mathit">u</span><span class="mord mathit">b</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">i</span><span class="mord mathit">c</span><span class="mrel">:</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit">t</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathit">t</span><span class="mord mathit">h</span><span class="mord mathit">i</span><span class="mord mathit">s</span><span class="mord mathit">c</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">d</span><span class="mord mathit">L</span><span class="mord mathit">i</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mrel">&lt;</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mrel">&gt;</span><span class="mrel">:</span><span class="mrel">:</span><span class="mord mathit" style="margin-right:0.03588em;">q</span><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">t</span><span class="mopen">(</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit">t</span><span class="mopen">(</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathit">c</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mbin">∗</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mbin">∗</span><span class="mpunct">,</span><span class="mord mathit">c</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mord mathit">o</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mbin">∗</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="mord mathit">o</span><span class="mord mathit">i</span><span class="mord mathit">d</span><span class="mbin">∗</span><span class="mclose">)</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="mord mathit">o</span><span class="mord mathit">i</span><span class="mord mathit">d</span><span class="mbin">∗</span><span class="mclose">)</span><span class="mord mathrm">&quot;</span><span class="mopen">(</span><span class="mclose">?</span><span class="mord mathit" style="margin-right:0.03588em;">q</span><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">t</span><span class="mord mathrm">@</span><span class="mclose">?</span></span></span></span>dList@VDNode@@@@QAEHP6AHPAVDNode@@0PAX@Z1@Z)&quot;.</p>
</blockquote>
<p>Allerdings ist meinerserachtens der Aufruf korrekt und die Parameter stimmen auch, die der Linker aufführt. Woran könnte es noch liegen?</p>
<p>Vielen Dank für eure Hilfe.</p>
<p>Gruß,</p>
<p>Tobias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2332056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2332056</guid><dc:creator><![CDATA[Sir_Tobias]]></dc:creator><pubDate>Tue, 18 Jun 2013 08:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to Templates: Linkerproblem mit aufzurufender Methode in Basis-Templateklasse on Tue, 18 Jun 2013 09:09:24 GMT]]></title><description><![CDATA[<p>Dies:</p>
<pre><code>template &lt;class T&gt; int qSort(dList&lt;T&gt; *iList,int comp_(T*,T*,void *),void *data);
</code></pre>
<p>ist eine völlig andere Funktion als</p>
<pre><code>template &lt;class T&gt; class dList : public QList&lt;T*&gt; {
  int qSort(dList&lt;T&gt; *iList,int comp_(T*,T*,void *),void *data = NULL);
};
</code></pre>
<p>Das eine ist eine Memberfunktion von dList, das andere eine freie Funktion.</p>
<p>Allgemein: Schrecklicher Code. Wie kannst du einerseits Templates kennen und andererseits so viel mit Zeigern, noch dazu void-Zeigern, rumpfuschen? Die Templates ermöglichen dir doch gerade, dass es sehr einfach ist, keine void* verwenden zu müssen! Und die ganzen normalen Zeiger und dynamischen Speicheranforderungen kann ich überhaupt nicht nachvollziehen.</p>
<p>Und wieso nutzt du nicht die Standardbibliothek? Das ganze Programm wären zwei Zeilen:</p>
<pre><code>#include &lt;container_deiner_wahl&gt; // Wieso eigentlich eine List?
#include &lt;algorithm&gt;
</code></pre>
<p>Ungarische Notation ist in C++ auch out, dein Programm ist ein Paradebeispiel dafür, warum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2332061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2332061</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Jun 2013 09:09:24 GMT</pubDate></item><item><title><![CDATA[Reply to Templates: Linkerproblem mit aufzurufender Methode in Basis-Templateklasse on Tue, 18 Jun 2013 10:06:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vielen Dank für die Anmerkungen. Das war sehr hilfreich.</p>
<p>Das mit der void*-Zeigern ist nicht schön, da hast Du recht. Das werde ich ändern.<br />
Ich bin dabei, den nicht von mir geschriebenen Code von einem Riesenmakro in ein Template umzuwandeln.</p>
<p>Diese Zwischenschicht ist allerdings nötig, da dies eine Basisklasse für viele andere Funktionen ist. Daher würde mir wahrscheinlich ein STL-Container nicht viel nützen, da ich auch die ganzen Aufrufen anpassen müsste. Oder gibt es da einen anderen Weg?</p>
<p>Gruß,</p>
<p>Tobias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2332083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2332083</guid><dc:creator><![CDATA[Sir_Tobias]]></dc:creator><pubDate>Tue, 18 Jun 2013 10:06:38 GMT</pubDate></item><item><title><![CDATA[Reply to Templates: Linkerproblem mit aufzurufender Methode in Basis-Templateklasse on Tue, 18 Jun 2013 10:12:27 GMT]]></title><description><![CDATA[<p>Sir_Tobias schrieb:</p>
<blockquote>
<p>Diese Zwischenschicht ist allerdings nötig, da dies eine Basisklasse für viele andere Funktionen ist. Daher würde mir wahrscheinlich ein STL-Container nicht viel nützen, da ich auch die ganzen Aufrufen anpassen müsste. Oder gibt es da einen anderen Weg?</p>
</blockquote>
<p>Du könntest einen kleinen Wrapper drumrum schreiben. Oder du machst dir eben einmal die Mühe, alle Aufrufe so anzupassen, dass sie mit allen möglichen Objekten klarkommen (d.h. Templates und Iteratoren wie in der Standardbibliothek).</p>
<p>Mach dir auch unbedingt auch mal Gedanken, ob die ganze Zeigerei (nicht nur void*) wirklich nötig ist. Höchstwahrscheinlich nicht. Dann wäre es bloß unnötig umständlich, fehleranfällig und langsam. Falls es doch nötig sein sollte, dann nimm wenigstens Smartpointer, dann passieren dir nicht solche Fehler wie in deiner main. Und für call-by-reference nimm bitte Referenzen! Die sind genau dafür da, wie der Name schon sagt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2332085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2332085</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Jun 2013 10:12:27 GMT</pubDate></item></channel></rss>