<?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[Function aus abgeleiteter Klasse wird nicht gefunden]]></title><description><![CDATA[<p>Ich habe folgendes Konstrukt:</p>
<pre><code class="language-cpp">class FitFunctionTemplate: public QThread
{
...
protected:
	virtual double value(double x, std::vector&lt;double&gt;&amp; values) = 0;

public:
	double value(double x);
};
</code></pre>
<pre><code class="language-cpp">double FitFunctionTemplate::value(double x)
{
	return value(x, resultingFitParameters());
}
</code></pre>
<pre><code class="language-cpp">class FitLinear: public FitFunctionTemplate, public GenFunction
{
...
public:

	double value(double x, std::vector&lt;double&gt;&amp; values);
};
</code></pre>
<p>Eine Objekt fit abgleitet von FitLinear sollte also immer über die Funktion &quot;value(x)&quot; verfügen, muss selbst aber die allgemeinere Funktion &quot;value(double x, std::vector&lt;double&gt;&amp; values)&quot; zur Verfügung stellen.</p>
<p>Das ganze lässt sich für jede einzelne Klasse kompilieren. Aber wenn ich auf value(x) zugreifen will, dann wird dies nicht gefunden.</p>
<p>Also:</p>
<pre><code class="language-cpp">FitLinear fit;	
...
double y = fit.value(x);
</code></pre>
<p>liefert den Fehler</p>
<blockquote>
<p>error C2660: 'FitLinear::value': Funktion akzeptiert keine 1 Argumente</p>
</blockquote>
<p>warum aber wird diese Funktion nicht gefunden?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252407/function-aus-abgeleiteter-klasse-wird-nicht-gefunden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 12:33:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252407.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Oct 2009 12:30:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Function aus abgeleiteter Klasse wird nicht gefunden on Mon, 19 Oct 2009 12:30:37 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Konstrukt:</p>
<pre><code class="language-cpp">class FitFunctionTemplate: public QThread
{
...
protected:
	virtual double value(double x, std::vector&lt;double&gt;&amp; values) = 0;

public:
	double value(double x);
};
</code></pre>
<pre><code class="language-cpp">double FitFunctionTemplate::value(double x)
{
	return value(x, resultingFitParameters());
}
</code></pre>
<pre><code class="language-cpp">class FitLinear: public FitFunctionTemplate, public GenFunction
{
...
public:

	double value(double x, std::vector&lt;double&gt;&amp; values);
};
</code></pre>
<p>Eine Objekt fit abgleitet von FitLinear sollte also immer über die Funktion &quot;value(x)&quot; verfügen, muss selbst aber die allgemeinere Funktion &quot;value(double x, std::vector&lt;double&gt;&amp; values)&quot; zur Verfügung stellen.</p>
<p>Das ganze lässt sich für jede einzelne Klasse kompilieren. Aber wenn ich auf value(x) zugreifen will, dann wird dies nicht gefunden.</p>
<p>Also:</p>
<pre><code class="language-cpp">FitLinear fit;	
...
double y = fit.value(x);
</code></pre>
<p>liefert den Fehler</p>
<blockquote>
<p>error C2660: 'FitLinear::value': Funktion akzeptiert keine 1 Argumente</p>
</blockquote>
<p>warum aber wird diese Funktion nicht gefunden?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1794781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1794781</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Mon, 19 Oct 2009 12:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Function aus abgeleiteter Klasse wird nicht gefunden on Mon, 19 Oct 2009 12:37:28 GMT]]></title><description><![CDATA[<p>pospiech schrieb:</p>
<blockquote>
<p>Aber wenn ich auf value(x) zugreifen will, dann wird dies nicht gefunden.</p>
<p>warum aber wird diese Funktion nicht gefunden?</p>
</blockquote>
<p>Weil die Überschreibung der virtuellen Funktion, die anderen geerbten Funktionen gleichen Namens verdeckt. Behebbar mittels using-Deklaration. Allerdings auch ein guter Grund, von öffentlich virtuellen Funktionen Abstand zu nehmen:</p>
<pre><code class="language-cpp">class FitFunctionTemplate: public QThread
{
...
private:
    virtual double value_impl(double x, std::vector&lt;double&gt;&amp; values) = 0;

public:
    double value(double x);
    double value(double x, std::vector&lt;double&gt;&amp; values) { return value_impl( x, values ); }
};
</code></pre>
<p>Die Überschreibung von value_impl beeinflusst hier nicht die Sichtbarkeit anderer Schnittstellenfunktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1794786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1794786</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 19 Oct 2009 12:37:28 GMT</pubDate></item></channel></rss>