<?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[Vererbung und konstruktoren ??]]></title><description><![CDATA[<p>Hallo<br />
ich habe hier ein keine Problem, wobei ich Hilfe gebrauchen könnte ^^<br />
als ich habe eine Basisklasse, die Koordinaten enthält (X,Y) und die so ausschaut:</p>
<pre><code class="language-cpp">class Koordinaten
{
 public:
 Koordinaten(unsigned char _posX, unsigned char _posY)
 :posX(_posX)
 ,posY(_posY)
 {}     

 unsigned char getPosX() const {return posX;}
 unsigned char getPosY() const {return posY;}  

 protected:
 unsigned char posX,
               posY;
};
</code></pre>
<p>nun will ich von dieser klass erben und habe es so gemacht:</p>
<pre><code class="language-cpp">class Spieler : Koordinaten
{
  public:
  Spieler(unsigned char _posX, unsigned char _posY)
  :posX(_posX)
  ,posY(_posY)
  {}

  Spieler(){}  

  ... 

};
</code></pre>
<p>der kompiler &quot;schmeist&quot; mir aber eine Fehlermeldung an den Kopf: &quot;class `Spieler' does not have any field named `posX' &quot; -&gt; und das kann ich nicht verstehen -&gt; ich erbe doch von meiner Koordinaten Klasse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wie muss ich das anstellen?</p>
<p>MFg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199049/vererbung-und-konstruktoren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 18:25:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199049.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Nov 2007 12:59:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung und konstruktoren ?? on Wed, 28 Nov 2007 13:08:01 GMT]]></title><description><![CDATA[<p>Hallo<br />
ich habe hier ein keine Problem, wobei ich Hilfe gebrauchen könnte ^^<br />
als ich habe eine Basisklasse, die Koordinaten enthält (X,Y) und die so ausschaut:</p>
<pre><code class="language-cpp">class Koordinaten
{
 public:
 Koordinaten(unsigned char _posX, unsigned char _posY)
 :posX(_posX)
 ,posY(_posY)
 {}     

 unsigned char getPosX() const {return posX;}
 unsigned char getPosY() const {return posY;}  

 protected:
 unsigned char posX,
               posY;
};
</code></pre>
<p>nun will ich von dieser klass erben und habe es so gemacht:</p>
<pre><code class="language-cpp">class Spieler : Koordinaten
{
  public:
  Spieler(unsigned char _posX, unsigned char _posY)
  :posX(_posX)
  ,posY(_posY)
  {}

  Spieler(){}  

  ... 

};
</code></pre>
<p>der kompiler &quot;schmeist&quot; mir aber eine Fehlermeldung an den Kopf: &quot;class `Spieler' does not have any field named `posX' &quot; -&gt; und das kann ich nicht verstehen -&gt; ich erbe doch von meiner Koordinaten Klasse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wie muss ich das anstellen?</p>
<p>MFg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411545</guid><dc:creator><![CDATA[Rainu]]></dc:creator><pubDate>Wed, 28 Nov 2007 13:08:01 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und konstruktoren ?? on Wed, 28 Nov 2007 13:08:29 GMT]]></title><description><![CDATA[<p>Der Spieler-Ctor darf nur die eigenen Member der Klasse direkt initialisieren - und die Initialisierung der Basis-Member an den Basis-Ctor weiterleiten:</p>
<pre><code class="language-cpp">class Spieler : public/*??*/ Koordinaten
{
  public:
  Spieler(unsigned char _posX, unsigned char _posY)
  : Koordinaten(_posX,_posY)
  {}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1411551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411551</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Nov 2007 13:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und konstruktoren ?? on Wed, 28 Nov 2007 13:13:56 GMT]]></title><description><![CDATA[<p>Ahh vielen Dank, ich wusste doch das man das irgendwie so machen musste -&gt; wusste aber eben nicht mehrgenau wie das ging ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411558</guid><dc:creator><![CDATA[Rainu]]></dc:creator><pubDate>Wed, 28 Nov 2007 13:13:56 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und konstruktoren ?? on Wed, 28 Nov 2007 13:14:08 GMT]]></title><description><![CDATA[<p>Rainu schrieb:</p>
<blockquote>
<p>nun will ich von dieser klass erben und habe es so gemacht:</p>
<p>class Spieler : Koordinaten</p>
</blockquote>
<p>Es ist von Design-Standpunkt her vermutlich Quatsch, das überhaupt zu tun. (Öffentliche) Vererbung drückt eine &quot;ist ein&quot;-Beziehung aus. In deinem Design ist also ein Spieler ein Koordinatenpaar. So etwas sollte man besser durch eine &quot;hat ein&quot;-Beziehung ausdrücken (also der Spieler-Klasse einen Koordinaten-Member verpassen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411559</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 28 Nov 2007 13:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und konstruktoren ?? on Wed, 28 Nov 2007 14:34:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class coord
{
    unsigned char m_x;
    unsigned char m_y;

public:
    coord(unsigned char x, unsigned char y)
        : m_x(x), m_y(y)
    {}

public:
    unsigned char get_x() const { return m_x; }
    unsigned char get_y() const { return m_y; }  
};

class player
{
    coord m_pos;
    std::string m_name;

public:
    player(std::string const&amp; name, coord const&amp; pos) 
        : m_name(name), m_pos(pos)
    {}
};
</code></pre>
<p>wäre logischer ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411611</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 28 Nov 2007 14:34:45 GMT</pubDate></item></channel></rss>