<?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[arrays überschreiben]]></title><description><![CDATA[<p>hallo, ich möchte eine klasse schreiben die ein array hat und eine andere klasse soll davon geerbt werden aber soll ein anderes array haben. wie kann man das in c machen? DANKE!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184085/arrays-überschreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 14:27:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184085.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2007 09:59:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 09:59:17 GMT]]></title><description><![CDATA[<p>hallo, ich möchte eine klasse schreiben die ein array hat und eine andere klasse soll davon geerbt werden aber soll ein anderes array haben. wie kann man das in c machen? DANKE!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303796</guid><dc:creator><![CDATA[overridden]]></dc:creator><pubDate>Tue, 12 Jun 2007 09:59:17 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:10:48 GMT]]></title><description><![CDATA[<p>Garnich, da C garkeine Klassen kennt!</p>
<p>Im Fall von C++ initialisierst du das Array einfach anders, bzw falls es um die Größe geht nimmst du ein std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303805</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:10:48 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:13:44 GMT]]></title><description><![CDATA[<p>oder das array in der baseclass private, und in der abgelittenen klasse auch ein andreres private array</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303808</guid><dc:creator><![CDATA[ser1al_ausgeloggt]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:16:38 GMT]]></title><description><![CDATA[<p>hallo, ich meinte c++. in der ersten klasse habe ich ein 16 byte grosses array und ich möchte in der geerbten klasse das array mit 56 bytes haben aber der name soll gleich bleiben. wie macht man das ohne std:vector DANKE!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303809</guid><dc:creator><![CDATA[overridden]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:23:14 GMT]]></title><description><![CDATA[<p>indem du das array anders initialisierst</p>
<pre><code>class a16
{
 char *array
 public:
 a16(){ array = new char[16]; }
};

class a56 : public a16
{
 public:
 a56(){ array = new char[56]; }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1303818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303818</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:26:49 GMT]]></title><description><![CDATA[<p>ser1al_ausgeloggt schrieb:</p>
<blockquote>
<p>oder das array in der baseclass private, und in der abgelittenen klasse auch ein andreres private array</p>
</blockquote>
<p>hallo, ich habe das ausprobiert aber es funktioniert nicht</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

class MFTFrame {
    private:
    char frame[56];
};

class BFTFrame : public MFTFrame {
    private:
    char frame[16];
};

int main() {
    BFTFrame bft;
    printf (&quot;%d\n&quot;, sizeof(bft));
}
</code></pre>
<p>die ausgabe zeigt 72 an warum nicht 16?<br />
DANKE!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303820</guid><dc:creator><![CDATA[overridden]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:28:50 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>indem du das array anders initialisierst</p>
<pre><code>class a16
{
 char *array
 public:
 a16(){ array = new char[16]; }
};

class a56 : public a16
{
 public:
 a56(){ array = new char[56]; }
};
</code></pre>
</blockquote>
<p>ich darf kein new verwenden. es soll für einen mikrokontroller sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303823</guid><dc:creator><![CDATA[overridden]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:28:50 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:31:45 GMT]]></title><description><![CDATA[<p>overridden schrieb:</p>
<blockquote>
<p>ser1al_ausgeloggt schrieb:</p>
<blockquote>
<p>oder das array in der baseclass private, und in der abgelittenen klasse auch ein andreres private array</p>
</blockquote>
<p>hallo, ich habe das ausprobiert aber es funktioniert nicht</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

class MFTFrame {
    private:
    char frame[56];
};

class BFTFrame : public MFTFrame {
    private:
    char frame[16];
};

int main() {
    BFTFrame bft;
    printf (&quot;%d\n&quot;, sizeof(bft));
}
</code></pre>
<p>die ausgabe zeigt 72 an warum nicht 16?<br />
DANKE!!!</p>
</blockquote>
<p>Weil 56+16 = 72! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303827</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:31:45 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:32:39 GMT]]></title><description><![CDATA[<p>Warum willst Du unbedingt erben? Da stimmt doch was nicht.<br />
Könnte mir noch eine Version mit templates vorstellen, falls du welche verwenden kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303828</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:37:20 GMT]]></title><description><![CDATA[<p>overridden schrieb:</p>
<blockquote>
<p>ich darf kein new verwenden. es soll für einen mikrokontroller sein</p>
</blockquote>
<p>also doch reines c? (mal von class abgesehen, könnt ja auch struct sein)</p>
<p>und deine klasse bftframe ist 72 byte groß, weil sie das 56 byte array der basisklasse erbt, auch wenn dieses nicht für die klasse sichtbar ist.</p>
<p>muss bftframe vom mftframe erben? sonst evtl.</p>
<p>(ups, was im code vergessen *G edit..)</p>
<pre><code>class BaseFrame{
 private:
 virtual char *frame = 0; // das ist so nur sinnvoll, wenn deine beerbenden klassen friends sind
};

class MFTFrame : public BaseFrame {
    private:
    char frame[56];
};

class BFTFrame : public BaseFrame {
    private:
    char frame[16];
};
</code></pre>
<p>so ist polymorphie auch gewährleistet, allerdings vielleicht nicht so, wie du es brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303829</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:37:20 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:43:35 GMT]]></title><description><![CDATA[<p>du könntest auch funktionen und daten trennen:</p>
<pre><code>class FrameFunctions
{
 ...
};

class BigFrame : public FrameFunctions
{
  char frame[REALLY_BIG];
};

class SmallFrame extends FrameFunctions
{
  char frame[MUCH_SMALLER];
};
</code></pre>
<p>aber, wie oben schon erwähnt, ist vererbung wohl nicht das richtige dafür...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303839</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:48:31 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>overridden schrieb:</p>
<blockquote>
<p>ich darf kein new verwenden. es soll für einen mikrokontroller sein</p>
</blockquote>
<p>also doch reines c? (mal von class abgesehen, könnt ja auch struct sein)</p>
<p>und deine klasse bftframe ist 72 byte groß, weil sie das 56 byte array der basisklasse erbt, auch wenn dieses nicht für die klasse sichtbar ist.</p>
<p>muss bftframe vom mftframe erben? sonst evtl.</p>
<p>(ups, was im code vergessen *G edit..)</p>
<pre><code>class BaseFrame{
 private:
 virtual char *frame = 0; // das ist so nur sinnvoll, wenn deine beerbenden klassen friends sind
};

class MFTFrame : public BaseFrame {
    private:
    char frame[56];
};

class BFTFrame : public BaseFrame {
    private:
    char frame[16];
};
</code></pre>
<p>so ist polymorphie auch gewährleistet, allerdings vielleicht nicht so, wie du es brauchst.</p>
</blockquote>
<p>aber das geht nicht. ich bekomme kompilerfehler virtual ist bei der deklaration von daten nicht zulässig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303842</guid><dc:creator><![CDATA[overridden]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:49:23 GMT]]></title><description><![CDATA[<p>overridden schrieb:</p>
<blockquote>
<p>ich darf kein new verwenden. es soll für einen mikrokontroller sein</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303843</guid><dc:creator><![CDATA[Der die Spassvögel kennt]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:49:23 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 10:55:02 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>du könntest auch funktionen und daten trennen:</p>
<pre><code>class FrameFunctions
{
 ...
};

class BigFrame : public FrameFunctions
{
  char frame[REALLY_BIG];
};

class SmallFrame extends FrameFunctions
{
  char frame[MUCH_SMALLER];
};
</code></pre>
<p>aber, wie oben schon erwähnt, ist vererbung wohl nicht das richtige dafür...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>danke aber ich kanns auch nicht kompilieren. was ist extends?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303851</guid><dc:creator><![CDATA[overridden]]></dc:creator><pubDate>Tue, 12 Jun 2007 10:55:02 GMT</pubDate></item><item><title><![CDATA[Reply to arrays überschreiben on Tue, 12 Jun 2007 11:11:26 GMT]]></title><description><![CDATA[<p>overridden schrieb:</p>
<blockquote>
<p>was ist extends?</p>
</blockquote>
<p>oooh, sorry, das ist von einer anderen programmiersprache, muss natürlich heissen <em>class SmallFrame : public FrameFunctions</em><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303864</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 12 Jun 2007 11:11:26 GMT</pubDate></item></channel></rss>