<?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[Überladene pow-funktion]]></title><description><![CDATA[<p>also ich möchte die pow-Funktion für verschiedene typen verwenden<br />
(um den Kehrwert zu bilden also ^-1).<br />
für float und double kann man ja die math.h benutzen.<br />
jetzt habe ich noch 2 klassen bruch(mit zähler und nenner) und komplex(mit Real und Imaginärteil).<br />
bei diesen ist der kehrwert ja etwas anders!<br />
also hab ich in den klasse bruch und komplex pow überladen:</p>
<pre><code class="language-cpp">bruch bruch::pow(const bruch &amp;zahl2, const bruch &amp;a){
	bruch erg;
	erg.zae=zahl2.nen;
	erg.nen=zahl2.zae;
return erg;
}
</code></pre>
<p>will ich diese nun in einer übergeordneten Template klasse (typ2) benutzen</p>
<pre><code class="language-cpp">template &lt;typename typ2&gt; matrix&lt;typ2&gt; fkt(const matrix&lt;typ2&gt; &amp;op)
{
	typ2 d=det(op); //det(op) gibt eine variable vom typ typ2 zurück!
        typ2 a=-1;
	typ2 kd=pow(d,a); //jetzt soll in kd der kehrwert von d!
...
return erg;
}
</code></pre>
<p>bekomme aber diese fehlermeldung:</p>
<p>..\src\matrix.hpp: In function 'matrix&lt;typ2&gt; invers(const matrix&lt;typ2&gt;&amp;) [with typ2 = komplex]':<br />
..\src\matrix.hpp:283: instantiated from 'void DetBerechn(matrix&lt;typ2&gt;) [with typd = komplex]'<br />
..\src\main.cpp:75: instantiated from here<br />
..\src\matrix.hpp:204: error: cannot convert 'komplex' to 'double' for argument '1' to 'double pow(double, double)'<br />
..\src\matrix.hpp: In function 'matrix&lt;typ2&gt; invers(const matrix&lt;typ2&gt;&amp;) [with typ2 = bruch]':<br />
..\src\matrix.hpp:283: instantiated from 'void DetBerechn(matrix&lt;typ2&gt;) [with typd = bruch]'<br />
..\src\main.cpp:76: instantiated from here<br />
..\src\matrix.hpp:204: error: cannot convert 'bruch' to 'double' for argument '1' to 'double pow(double, double)'</p>
<p>hört sich für mich an als ob er nicht die überschrieben pow-funktionen benutzt!<br />
jemand ne idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242758/überladene-pow-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 21:15:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242758.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Jun 2009 20:26:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladene pow-funktion on Sun, 07 Jun 2009 20:27:57 GMT]]></title><description><![CDATA[<p>also ich möchte die pow-Funktion für verschiedene typen verwenden<br />
(um den Kehrwert zu bilden also ^-1).<br />
für float und double kann man ja die math.h benutzen.<br />
jetzt habe ich noch 2 klassen bruch(mit zähler und nenner) und komplex(mit Real und Imaginärteil).<br />
bei diesen ist der kehrwert ja etwas anders!<br />
also hab ich in den klasse bruch und komplex pow überladen:</p>
<pre><code class="language-cpp">bruch bruch::pow(const bruch &amp;zahl2, const bruch &amp;a){
	bruch erg;
	erg.zae=zahl2.nen;
	erg.nen=zahl2.zae;
return erg;
}
</code></pre>
<p>will ich diese nun in einer übergeordneten Template klasse (typ2) benutzen</p>
<pre><code class="language-cpp">template &lt;typename typ2&gt; matrix&lt;typ2&gt; fkt(const matrix&lt;typ2&gt; &amp;op)
{
	typ2 d=det(op); //det(op) gibt eine variable vom typ typ2 zurück!
        typ2 a=-1;
	typ2 kd=pow(d,a); //jetzt soll in kd der kehrwert von d!
...
return erg;
}
</code></pre>
<p>bekomme aber diese fehlermeldung:</p>
<p>..\src\matrix.hpp: In function 'matrix&lt;typ2&gt; invers(const matrix&lt;typ2&gt;&amp;) [with typ2 = komplex]':<br />
..\src\matrix.hpp:283: instantiated from 'void DetBerechn(matrix&lt;typ2&gt;) [with typd = komplex]'<br />
..\src\main.cpp:75: instantiated from here<br />
..\src\matrix.hpp:204: error: cannot convert 'komplex' to 'double' for argument '1' to 'double pow(double, double)'<br />
..\src\matrix.hpp: In function 'matrix&lt;typ2&gt; invers(const matrix&lt;typ2&gt;&amp;) [with typ2 = bruch]':<br />
..\src\matrix.hpp:283: instantiated from 'void DetBerechn(matrix&lt;typ2&gt;) [with typd = bruch]'<br />
..\src\main.cpp:76: instantiated from here<br />
..\src\matrix.hpp:204: error: cannot convert 'bruch' to 'double' for argument '1' to 'double pow(double, double)'</p>
<p>hört sich für mich an als ob er nicht die überschrieben pow-funktionen benutzt!<br />
jemand ne idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722970</guid><dc:creator><![CDATA[HoCiEp3]]></dc:creator><pubDate>Sun, 07 Jun 2009 20:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene pow-funktion on Sun, 07 Jun 2009 21:38:45 GMT]]></title><description><![CDATA[<p>Dann mach die Funktion &quot;pow&quot; zu einer freien Funktion anstatt einer Memberfunktion (hat dort anscheinend auch nix zu suchen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1723002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1723002</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 07 Jun 2009 21:38:45 GMT</pubDate></item></channel></rss>