<?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[Keine zulässige Konvertierung für den this-Zeiger]]></title><description><![CDATA[<p><strong>Hallo!</strong></p>
<p>Habe folgende Fehlermeldung vom Compiler bekommen:</p>
<p><em>Für 2 Überladungen gibt es keine zulässige Konvertierung für den this-Zeiger.</em></p>
<p>Ich versuche folgenden Code in main zu testen:</p>
<pre><code class="language-cpp">void _cdecl main(void) {
  uci_options_c options;

  options.initialize();
  options.add(16, 16, 1024, &quot;Transposition Table Size&quot;);
  options.add(50, 0, 100, &quot;Agressiveness&quot;);

  printf_s(&quot;%d\n&quot;, options.find_by_name(&quot;Transposition Table Size&quot;)-&gt;get_current_value());
  options.print();
  // options.find_by_name(&quot;Transposition Table Size&quot;)-&gt;set(128); // hier kracht es?
}
</code></pre>
<p>Das Headerfile enhält alle Definitionen:</p>
<pre><code class="language-cpp">#ifndef included_options_h
#define included_options_h

////
////  includes
////

#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

////
//// constants
////

const int SPIN_OPTIONS = 8;

////
////  spin_option_c
////

class spin_option_c {
  friend class uci_options_c;

private:
  int current_value;
  int min_value;
  int max_value;
  char name[128];

public:
  inline void set(int value) {
    if (value &lt; min_value) value = min_value;
    if (value &gt; max_value) value = max_value;
    current_value = value;
  }

  inline void set(int value, int min, int max, const char * string) {
    if (min &gt; max) min = max;
    min_value = min;
    max_value = max;
    set(value);
    strcpy_s(name, 128, string);
  }

  inline int get_current_value(void) const {
    return current_value;
  }

  inline const char * get_name(void) const {
    return name;
  }

  inline void print(void) const {
    printf_s(&quot;option name %s type spin default %d min %d max %d\n&quot;, name, current_value, min_value, max_value);
  }
};

////
////  uci_option_c
////

class uci_options_c {
private:
  int spin_options;
  spin_option_c spin_option_list[SPIN_OPTIONS];

public:
  inline void initialize(void) {
    spin_options = 0;
  }

  inline void add(int value, int min, int max, const char * string) {
    if (spin_options &lt; SPIN_OPTIONS) {
      spin_option_list[spin_options++].set(value, min, max, string);
    }
  }

  inline const spin_option_c * find_by_name(const char * name) const {
    for (int i = 0; i &lt; spin_options; i++) {
      if (strcmp(name, spin_option_list[i].get_name()) == 0) {
        return spin_option_list + i;
      }
    }
    return NULL;
  }

  inline void print(void) const {
    for (int i = 0; i &lt; spin_options; i++) {
      spin_option_list[i].print();
    }
  }
};

#endif
</code></pre>
<p>Weshalb kann ich mit dem this-Zeiger nicht auf überladene Funktionen zugreifen? Was habe ich entweder falsch implementiert oder falsch verstanden? Wo ist mein Denkfehler?</p>
<p><strong>Danke für eure Hilfe!</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254857/keine-zulässige-konvertierung-für-den-this-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 14:54:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254857.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Nov 2009 10:28:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Keine zulässige Konvertierung für den this-Zeiger on Sun, 22 Nov 2009 10:28:26 GMT]]></title><description><![CDATA[<p><strong>Hallo!</strong></p>
<p>Habe folgende Fehlermeldung vom Compiler bekommen:</p>
<p><em>Für 2 Überladungen gibt es keine zulässige Konvertierung für den this-Zeiger.</em></p>
<p>Ich versuche folgenden Code in main zu testen:</p>
<pre><code class="language-cpp">void _cdecl main(void) {
  uci_options_c options;

  options.initialize();
  options.add(16, 16, 1024, &quot;Transposition Table Size&quot;);
  options.add(50, 0, 100, &quot;Agressiveness&quot;);

  printf_s(&quot;%d\n&quot;, options.find_by_name(&quot;Transposition Table Size&quot;)-&gt;get_current_value());
  options.print();
  // options.find_by_name(&quot;Transposition Table Size&quot;)-&gt;set(128); // hier kracht es?
}
</code></pre>
<p>Das Headerfile enhält alle Definitionen:</p>
<pre><code class="language-cpp">#ifndef included_options_h
#define included_options_h

////
////  includes
////

#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

////
//// constants
////

const int SPIN_OPTIONS = 8;

////
////  spin_option_c
////

class spin_option_c {
  friend class uci_options_c;

private:
  int current_value;
  int min_value;
  int max_value;
  char name[128];

public:
  inline void set(int value) {
    if (value &lt; min_value) value = min_value;
    if (value &gt; max_value) value = max_value;
    current_value = value;
  }

  inline void set(int value, int min, int max, const char * string) {
    if (min &gt; max) min = max;
    min_value = min;
    max_value = max;
    set(value);
    strcpy_s(name, 128, string);
  }

  inline int get_current_value(void) const {
    return current_value;
  }

  inline const char * get_name(void) const {
    return name;
  }

  inline void print(void) const {
    printf_s(&quot;option name %s type spin default %d min %d max %d\n&quot;, name, current_value, min_value, max_value);
  }
};

////
////  uci_option_c
////

class uci_options_c {
private:
  int spin_options;
  spin_option_c spin_option_list[SPIN_OPTIONS];

public:
  inline void initialize(void) {
    spin_options = 0;
  }

  inline void add(int value, int min, int max, const char * string) {
    if (spin_options &lt; SPIN_OPTIONS) {
      spin_option_list[spin_options++].set(value, min, max, string);
    }
  }

  inline const spin_option_c * find_by_name(const char * name) const {
    for (int i = 0; i &lt; spin_options; i++) {
      if (strcmp(name, spin_option_list[i].get_name()) == 0) {
        return spin_option_list + i;
      }
    }
    return NULL;
  }

  inline void print(void) const {
    for (int i = 0; i &lt; spin_options; i++) {
      spin_option_list[i].print();
    }
  }
};

#endif
</code></pre>
<p>Weshalb kann ich mit dem this-Zeiger nicht auf überladene Funktionen zugreifen? Was habe ich entweder falsch implementiert oder falsch verstanden? Wo ist mein Denkfehler?</p>
<p><strong>Danke für eure Hilfe!</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811711</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Sun, 22 Nov 2009 10:28:26 GMT</pubDate></item><item><title><![CDATA[Reply to Keine zulässige Konvertierung für den this-Zeiger on Sun, 22 Nov 2009 10:51:44 GMT]]></title><description><![CDATA[<p>Ich vermute es geht nicht um die Überladung der Funktionen, sondern darum, dass ich mittels einer const-Funktion keine Memberdaten verändern kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811718</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Sun, 22 Nov 2009 10:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Keine zulässige Konvertierung für den this-Zeiger on Sun, 22 Nov 2009 11:01:42 GMT]]></title><description><![CDATA[<p>find_by_name liefert einen Zeiger auf <strong>const</strong> zurück. Du hast 2 <code>set</code> -Funktionen, aber keine von denen ist <code>const</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811722</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 22 Nov 2009 11:01:42 GMT</pubDate></item></channel></rss>