<?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[MEthode nicht deklariert?]]></title><description><![CDATA[<p>Hi aller mit einander,</p>
<p>Ich habe hier ein Problem und zwar habe ich einen Vektor m_primitives in dem Zeiger auf Objekte vom Typ Inifinite_plane, Sphere, und Triangle gespeichert werden. Diese sind alle 3 von Primitive abgeleitet.</p>
<pre><code>bool
Scene::Intersect(Ray&amp; ray)
{
  bool primitive_hit = false;
  for (int i = 0; i &lt; m_primitives.size(); i++){
      if (m_primitives[i].intersect(ray) == true){
        ray.hit() = m_primitives[i];
        primitive_hit = true;
      }
  }
  if (primitive_hit == true)
    return true;    

  return false;
}
</code></pre>
<p>Primitive selber ist folgender maßen definiert</p>
<pre><code>class Primitive
{
public:
  Primitive(Shader* shader = 0);
  virtual ~Primitive();

  virtual bool Intersect(Ray &amp;ray) = 0;
  virtual bool Occluded(Ray&amp; ray);
  virtual Vec3f GetNormal(Ray&amp; ray) = 0;

  Shader* shader();
protected:
  Shader* m_shader;
};
</code></pre>
<p>Die Intersect methode ist auch in alle 3 Klassen implementiert, jetzt sagt mir der Compiler intersect not declared. Ich weiß nur nicht warum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Weil Intersect ist ja in Primitive schon mal definiert er müsste ja nur für jedes Objekt die jeweilige Intersect MEthode aufrufen.</p>
<p>Ich hoffe jemand kann mir helfen, da ich so wirklich nicht dahinter komme warum das nicht geht.<br />
Danke schonmal im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227565/methode-nicht-deklariert</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 21:55:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227565.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Nov 2008 09:49:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 09:49:22 GMT]]></title><description><![CDATA[<p>Hi aller mit einander,</p>
<p>Ich habe hier ein Problem und zwar habe ich einen Vektor m_primitives in dem Zeiger auf Objekte vom Typ Inifinite_plane, Sphere, und Triangle gespeichert werden. Diese sind alle 3 von Primitive abgeleitet.</p>
<pre><code>bool
Scene::Intersect(Ray&amp; ray)
{
  bool primitive_hit = false;
  for (int i = 0; i &lt; m_primitives.size(); i++){
      if (m_primitives[i].intersect(ray) == true){
        ray.hit() = m_primitives[i];
        primitive_hit = true;
      }
  }
  if (primitive_hit == true)
    return true;    

  return false;
}
</code></pre>
<p>Primitive selber ist folgender maßen definiert</p>
<pre><code>class Primitive
{
public:
  Primitive(Shader* shader = 0);
  virtual ~Primitive();

  virtual bool Intersect(Ray &amp;ray) = 0;
  virtual bool Occluded(Ray&amp; ray);
  virtual Vec3f GetNormal(Ray&amp; ray) = 0;

  Shader* shader();
protected:
  Shader* m_shader;
};
</code></pre>
<p>Die Intersect methode ist auch in alle 3 Klassen implementiert, jetzt sagt mir der Compiler intersect not declared. Ich weiß nur nicht warum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Weil Intersect ist ja in Primitive schon mal definiert er müsste ja nur für jedes Objekt die jeweilige Intersect MEthode aufrufen.</p>
<p>Ich hoffe jemand kann mir helfen, da ich so wirklich nicht dahinter komme warum das nicht geht.<br />
Danke schonmal im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1615844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1615844</guid><dc:creator><![CDATA[Jadephoenix]]></dc:creator><pubDate>Mon, 17 Nov 2008 09:49:22 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 10:01:12 GMT]]></title><description><![CDATA[<p>Pure Virtual Methoden müssen in der abgeleiteten Klasse nochmal deklariert werden, dort nur als virtual</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1615846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1615846</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Mon, 17 Nov 2008 10:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 10:08:17 GMT]]></title><description><![CDATA[<p>Meinst du ungefähr sowaS?</p>
<pre><code>bool
InfinitePlane::Intersect(Ray&amp; ray)
{
  Vec3f diff = m_a - ray.origin();
  float t = diff.dot(m_n) / ray.direction().dot(m_n);
  if (t &lt; 1e-5 || t &gt; ray.t()) 
    return false;
  ray.setT(t);
  return true;
}
</code></pre>
<p>das hab ich ja auch gemacht.</p>
<p>Die genaue Fehlermeldung lautet</p>
<blockquote>
<p>In member function `virtual bool Scene::Intersect(Ray&amp;)': `intersect' has not been declared</p>
</blockquote>
<p>Ich weiß halt nur nicht warum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1615853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1615853</guid><dc:creator><![CDATA[Jadephoenix]]></dc:creator><pubDate>Mon, 17 Nov 2008 10:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 10:11:31 GMT]]></title><description><![CDATA[<p>in zeile 6 in deiner hier gezeigten implementierung von Scene::Intersect rufst du von den einzelnen Primitives die member-funktion intersekt auf. die gibt es nicht, die funktion heißt Intersekt (großes i).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1615856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1615856</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Mon, 17 Nov 2008 10:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 15:21:45 GMT]]></title><description><![CDATA[<p>okay manchmal sieht man den Wald vor lauter Bäumen nicht. Ich hab das jetzt mal angepasst, und jetzt bekomm ich folgende Fehlermeldung:</p>
<blockquote>
<p>In member function `virtual bool Scene::Intersect(Ray&amp;)': `Intersect' is not a type request for member of non-aggregate type before '(' token</p>
</blockquote>
<p>Was will er mir denn damit sagen? Sorry Ich habs gegoogled aber schien mir nciht so richtig schlüssig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616035</guid><dc:creator><![CDATA[Jadephoenix]]></dc:creator><pubDate>Mon, 17 Nov 2008 15:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 15:24:09 GMT]]></title><description><![CDATA[<p>Okay habs schon trotzdem danke an alle die sich die Mühe gemacht haben mir zu helfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616040</guid><dc:creator><![CDATA[Jadephoenix]]></dc:creator><pubDate>Mon, 17 Nov 2008 15:24:09 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 20:50:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich muss nochmal stören <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> gibt es eine Möglichkeit zu überprüfen ob in einer Float NAN steht? Weil an irgendeinem Punkt tritt es im Moment bei mir auf und ich finde den grund nicht so richtig <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="😉"
    /> Danke schonmla im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616181</guid><dc:creator><![CDATA[Jadephoenix]]></dc:creator><pubDate>Mon, 17 Nov 2008 20:50:16 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 20:58:37 GMT]]></title><description><![CDATA[<p>Wenn in einer Variable ein NaN steht, sollte eine Überprüfung auf Gleichheit mit sich selbst <code>false</code> zurückliefern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616185</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 17 Nov 2008 20:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to MEthode nicht deklariert? on Mon, 17 Nov 2008 21:09:08 GMT]]></title><description><![CDATA[<p>entweder im vorhinein prüfen, ob die rechenoperationen ja wohl keine NaN liefern, auf unportable sachen wie isnan zurückgreifen, oder</p>
<pre><code class="language-cpp">if (value != value)
</code></pre>
<p>vergleich einer NaN mit einer anderen ergeben false. falls es aber signaling NaNs sind, wirst du eine floating point exception fliegen sehen.<br />
(das findet man z.b. mit <code>numeric_limits&lt;float&gt;::has_signaling_NaN</code> heraus)</p>
<p>dafür hättest du im übrigen einen neuen thread aufmachen sollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616188</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Mon, 17 Nov 2008 21:09:08 GMT</pubDate></item></channel></rss>