<?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[Frage zur Vererbung]]></title><description><![CDATA[<p>Kommt es mir nur so vor oder ist es wirklich so das Vererbung nur Schreibarbeit erspart? <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>Laut Disassembler erstellt das Programm hier eine neue Variable im Speicher.</p>
<pre><code class="language-cpp">void hen :: init ()
{
    var = 300; // Erstellt im Speicher eine neue Variable
}
</code></pre>
<p>Ich dachte der Sinn der Vererbung wäre immer das man da z.b. Speicherplatz sparen kann und natürlich auch auf Element anderer Klassen zugreifen kann.</p>
<p>Ich dachte auch das ich jetzt hier den Wert ausgeben bekomme den ich in der Funktion</p>
<pre><code class="language-cpp">void hen :: init()
</code></pre>
<p>der Variable var zugewiesen habe.</p>
<p>Mir kommt das alles so vor als das ich die Variablen die ich in der Klasse data habe einfach in der Klasse hen benutzen kann ohne sie extra nochmal in die Klasse hen zu schreiben.</p>
<pre><code class="language-cpp">void data :: print ()
{
    std::cout&lt;&lt; var &lt;&lt; std::endl;
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;C\file.h&quot;
using namespace std;

int main()
{

h.init();
dat.print();

return 0;
}
</code></pre>
<p>file.h</p>
<pre><code class="language-cpp">#ifndef fileH
#define fileH

#include &lt;iostream&gt;

class data
{
public:
      int var;
      void print();
};

class hen : data
{
public:
      void init();
};

extern hen h;
extern data dat;

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;file.h&quot;

data dat;
hen h;

void data :: print ()
{
    std::cout&lt;&lt; var &lt;&lt; std::endl;
}

void hen :: init ()
{
    var = 300; // Erstellt im Speicher eine neue Variable
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/300943/frage-zur-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 11:29:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300943.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Mar 2012 14:28:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 14:28:09 GMT]]></title><description><![CDATA[<p>Kommt es mir nur so vor oder ist es wirklich so das Vererbung nur Schreibarbeit erspart? <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>Laut Disassembler erstellt das Programm hier eine neue Variable im Speicher.</p>
<pre><code class="language-cpp">void hen :: init ()
{
    var = 300; // Erstellt im Speicher eine neue Variable
}
</code></pre>
<p>Ich dachte der Sinn der Vererbung wäre immer das man da z.b. Speicherplatz sparen kann und natürlich auch auf Element anderer Klassen zugreifen kann.</p>
<p>Ich dachte auch das ich jetzt hier den Wert ausgeben bekomme den ich in der Funktion</p>
<pre><code class="language-cpp">void hen :: init()
</code></pre>
<p>der Variable var zugewiesen habe.</p>
<p>Mir kommt das alles so vor als das ich die Variablen die ich in der Klasse data habe einfach in der Klasse hen benutzen kann ohne sie extra nochmal in die Klasse hen zu schreiben.</p>
<pre><code class="language-cpp">void data :: print ()
{
    std::cout&lt;&lt; var &lt;&lt; std::endl;
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;C\file.h&quot;
using namespace std;

int main()
{

h.init();
dat.print();

return 0;
}
</code></pre>
<p>file.h</p>
<pre><code class="language-cpp">#ifndef fileH
#define fileH

#include &lt;iostream&gt;

class data
{
public:
      int var;
      void print();
};

class hen : data
{
public:
      void init();
};

extern hen h;
extern data dat;

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;file.h&quot;

data dat;
hen h;

void data :: print ()
{
    std::cout&lt;&lt; var &lt;&lt; std::endl;
}

void hen :: init ()
{
    var = 300; // Erstellt im Speicher eine neue Variable
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2191610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191610</guid><dc:creator><![CDATA[srsbsns]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 14:37:54 GMT]]></title><description><![CDATA[<p>srsbsns schrieb:</p>
<blockquote>
<p>Kommt es mir nur so vor oder ist es wirklich so das Vererbung nur Schreibarbeit erspart? <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>
</blockquote>
<p>Nö. Kann es auch, aber das ist nicht der Sinn dahinter.</p>
<p>srsbsns schrieb:</p>
<blockquote>
<p>Ich dachte der Sinn der Vererbung wäre immer das man da z.b. Speicherplatz sparen kann und natürlich auch auf Element anderer Klassen zugreifen kann.</p>
</blockquote>
<p>Speicherplatz sparen? Jetzt wirds irgendwie absurd..</p>
<p>Vererbung (insbesondere &quot;public&quot; Vererbung) drückt eine is-a Beziehung zwischen zwei Typen aus. Ein Auto ist z.B. ein Fahrzeug. Jetzt kannst du Funktionen erstellen, die etwas mit Fahrzeugen machen, und du kannst ihnen Autos übergeben, weil ja alle Autos Fahrzeuge sind.</p>
<p>Ein Beispiel aus der Standardbibliothek wären z.B. ostreams. ofstreams erben von ostreams, sind also auch ostreams. Die Überladung des operator &lt;&lt; für ostreams kann also auch für ofstreams genutzt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191615</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 14:38:17 GMT]]></title><description><![CDATA[<p>Die öffentliche Vererbung ist eigentlich dafür da, Gemeinsamkeiten von einigen Klassen (mit demselben Einsatzzweck) in einer Basisklasse zusammenzufassen. In erster Linie nicht, weil es Schreibarbeit sparen könnte, sondern weil man bestimmten Code, der sich nicht dafür interessiert, was genau der dynamische Typ eines Objekts ist, für Objekte von irgendwelchen von der Basisklasse abgeleiteten Klasse nutzbar machen kann.</p>
<pre><code class="language-cpp">void foo(base* ptr)
{
  cout &lt;&lt; ptr-&gt;gemeinsamkeit() &lt;&lt; endl;
}

int main() {
  derived1 d1;
  derived2 d2;
  foo(&amp;d1);
  foo(&amp;d2);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2191616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191616</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 14:42:32 GMT]]></title><description><![CDATA[<p>Ich glaube, du interpretierst auch das Disassembly falsch. Da wird gar nichts neu erstellt. Der Wert von var in dem aufrufenden Objekt (hier h) wird überschrieben. Ganz sicher. Siehst du doch, wenn du h.var hinterher ausgibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191618</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 15:43:06 GMT]]></title><description><![CDATA[<p>Ok mit dem &quot;Variable wird neu erstellt&quot; das war wohl der falsche ausdruck.</p>
<pre><code class="language-asm">void hen :: init ()

0040158E  /$ 55             PUSH EBP
0040158F  |. 89E5           MOV EBP,ESP
00401591  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00401594  |. C700 2C010000  MOV DWORD PTR DS:[EAX],12C    ; 12c = 300
0040159A  |. 5D             POP EBP
0040159B  \. C3             RETN
</code></pre>
<p>Nachdem ich hen::init() ausgeführt habe steht in EAX die Adresse: 00443024<br />
An EAX(00443024) steht auch die 300 (12c hex).</p>
<p>Wenn dann meine Funktion void data :: print () augerufen wird ist das hier die Stelle die mich jetzt wundert:</p>
<pre><code class="language-asm">Ein Teil aus der Funktion void data :: print ()
00401566 |. 8B45 08  MOV EAX,DWORD PTR SS:[EBP+8] ; EBP+8 = 00443020
</code></pre>
<p>Würde EBP+8 auf die Adresse 00443024 zeigen dann würde ich mit der Funktion void data :: print () ja auch die 300 ausgeben bekommen.</p>
<p>Ich dachte eigentlich über die Vererbung kann man auf die Variablen einer anderen Klasse zugreifen.</p>
<p>Was mache ich da falsch oder wo ist da der Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191642</guid><dc:creator><![CDATA[srsbsns]]></dc:creator><pubDate>Wed, 14 Mar 2012 15:43:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 15:48:05 GMT]]></title><description><![CDATA[<p>Ok so kann ich es noch besser Erklären was mich wundert.</p>
<pre><code class="language-cpp">void data :: print ()
 {
     std::cout&lt;&lt;&quot;data::print() &quot; &lt;&lt; &amp;var &lt;&lt; std::endl; // Gibt aus 0x443020
 }

void hen :: init ()
 {
     std::cout&lt;&lt;&quot;hen::init() &quot; &lt;&lt; &amp;var &lt;&lt; std::endl; // Gibt aus: 0x443024
 }
</code></pre>
<p>Hier habe ich jetzt erwartet das ich zweimal die selbe Adresse herausbekomme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191646</guid><dc:creator><![CDATA[srsbsns]]></dc:creator><pubDate>Wed, 14 Mar 2012 15:48:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Wed, 14 Mar 2012 15:59:22 GMT]]></title><description><![CDATA[<p>Das was du da heraus bekommst, hängt doch von der Objektinstanz ab, sofern var nicht static ist. Ich glaube, du hast das ganze Grundkonzept von Klassen und Objekten nicht verstanden. Ein Objekt ist die konkrete Instanzierung einer Klasse. Davon kann es ganz viele geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191657</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Mar 2012 15:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Thu, 15 Mar 2012 09:01:57 GMT]]></title><description><![CDATA[<p>Dann hab ich hier doch jetzt 2 int Variablen im Speicher stehen oder nicht?<br />
Weil die 8 und die 3 stehen ja jeweils an verschiedenen Stellen im Speicher.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class car
{
    public:
        int sp;

};

car a;
car b;

int main()
{
a.sp = 8;
cout&lt;&lt;a.sp&lt;&lt;endl; // Gibt 8 aus

b.sp = 3;
cout&lt;&lt;b.sp&lt;&lt;endl; // Gibt 3 aus

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
<p>Ich habe mir hier: <a href="http://www.cpp-tutor.de/cpp/le09/klassen.html" rel="nofollow">http://www.cpp-tutor.de/cpp/le09/klassen.html</a><br />
auch mal den Teil &quot;Objekte in der Theorie&quot; durchgelesen aber das hilft mir auch nicht weiter.</p>
<p>Hat jemand zufällig noch eine bessere Quelle zu dem Thema?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191818</guid><dc:creator><![CDATA[srsbsns]]></dc:creator><pubDate>Thu, 15 Mar 2012 09:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Thu, 15 Mar 2012 09:10:20 GMT]]></title><description><![CDATA[<p>Die Grundlagen der Objektorientierung in C++ entnimmst du lieber einem guten Buch. Wenn dir nämlich die Sache mit den Instanzierungen unklar (beziehungsweise seit heute neu) ist, dann hast du es irgendwie geschafft, die Sprachmittel zwar zu kennen, aber nicht richtig verstanden zu haben. Und das ist nicht gut (für dich). Siehe den Link in meiner Signatur für Buchempfehlungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191822</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 15 Mar 2012 09:10:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Thu, 15 Mar 2012 11:23:56 GMT]]></title><description><![CDATA[<p>Nochmal kurz zu der Sache &quot;erstellt im Speicher eine neue Variable&quot;.</p>
<p>Das konnte ich im C++ Primer im Bezug zu Objekten finden:</p>
<p>In C++, an object is just a variable, and the purest definition is “a<br />
region of storage” (this is a more specific way of saying, “an object<br />
must have a unique identifier,” which in the case of C++ is a<br />
unique memory address). It’s a place where you can store data, and<br />
it’s implied that there are also operations that can be performed on<br />
this data.</p>
<p>Ich habe das so verstanden:<br />
- Jedes Objekt hat eine einzartige Adresse.<br />
- Ein Objekt ist eine bestimmte Region im Speicher.</p>
<p>Im Disassembly von IDA Pro sieht das jetzt so aus:</p>
<p>.text:00401168 var_8 = dword ptr -8<br />
.text:00401168 var_4 = dword ptr -4</p>
<p>Und das sind doch 2 Variablen die da auf dem Stack angelegt werden ... (Bei Funktionen da konnte ich dieses Verhalten nicht beobachte, die Funktion wurden nicht 2 mal angelegt.)</p>
<p>Bei Funktionen sah es so aus:</p>
<p>lea eax,dword ptr ds:[ebp-4]<br />
push eax<br />
call Adresse ABC</p>
<p>lea edx,dword ptr ds:[ebp-8]<br />
push edx<br />
call Adresse ABC</p>
<p>Das Program funktionierte natürlich selbst wenn man lea und push vor den 2 Funktionsaufrufen entfernt hat.</p>
<p>Ausgabe von IDA Pro:</p>
<pre><code class="language-asm">.text:00401168 ; int __cdecl main(int argc,const char **argv,const char *envp)
.text:00401168 _main           proc near               ; DATA XREF: .data:0040204Co
.text:00401168
.text:00401168 var_8           = dword ptr -8
.text:00401168 var_4           = dword ptr -4
.text:00401168 argc            = dword ptr  8
.text:00401168 argv            = dword ptr  0Ch
.text:00401168 envp            = dword ptr  10h
.text:00401168
.text:00401168                 push    ebp
.text:00401169                 mov     ebp, esp
.text:0040116B                 add     esp, 0FFFFFFF8h
.text:0040116E                 push    offset s        ; &quot;ok&quot;
.text:00401173                 push    ds:@_STL@cout   ; int
.text:00401179                 call    sub_401288
.text:0040117E                 add     esp, 8
.text:00401181                 mov     [ebp+var_4], 1
.text:00401188                 mov     [ebp+var_8], 2
.text:0040118F                 push    offset sub_401680
.text:00401194                 lea     eax, [ebp+var_4]
.text:00401197                 push    eax
.text:00401198                 push    offset aC       ; &quot;c: &quot;
.text:0040119D                 push    ds:@_STL@cout   ; int
.text:004011A3                 call    sub_401288
.text:004011A8                 add     esp, 8
.text:004011AB                 push    eax
.text:004011AC                 call    @$beql$qrx5_GUIDt1 ; operator==(_GUID &amp;,_GUID &amp;)
.text:004011B1                 add     esp, 8
.text:004011B4                 push    eax
.text:004011B5                 call    sub_401268
.text:004011BA                 add     esp, 8
.text:004011BD                 push    offset sub_401680
.text:004011C2                 push    [ebp+var_4]
.text:004011C5                 push    offset aC_v     ; &quot;c.v: &quot;
.text:004011CA                 push    ds:@_STL@cout   ; int
.text:004011D0                 call    sub_401288
.text:004011D5                 add     esp, 8
.text:004011D8                 push    eax
.text:004011D9                 call    @$beql$qrx5_GUIDt1_0 ; operator==(_GUID &amp;,_GUID &amp;)
.text:004011DE                 add     esp, 8
.text:004011E1                 push    eax
.text:004011E2                 call    sub_401268
.text:004011E7                 add     esp, 8
.text:004011EA                 push    offset sub_401680
.text:004011EF                 lea     edx, [ebp+var_8]
.text:004011F2                 push    edx
.text:004011F3                 push    offset aB       ; &quot;b: &quot;
.text:004011F8                 push    ds:@_STL@cout   ; int
.text:004011FE                 call    sub_401288
.text:00401203                 add     esp, 8
.text:00401206                 push    eax
.text:00401207                 call    @$beql$qrx5_GUIDt1 ; operator==(_GUID &amp;,_GUID &amp;)
.text:0040120C                 add     esp, 8
.text:0040120F                 push    eax
.text:00401210                 call    sub_401268
.text:00401215                 add     esp, 8
.text:00401218                 push    offset aOk2     ; &quot;ok2&quot;
.text:0040121D                 push    ds:@_STL@cout   ; int
.text:00401223                 call    sub_401288
.text:00401228                 add     esp, 8
.text:0040122B                 mov     [ebp+var_4], 8
.text:00401232                 push    [ebp+var_4]
.text:00401235                 push    ds:@_STL@cout   ; _STL::cout
.text:0040123B                 call    @$beql$qrx5_GUIDt1_0 ; operator==(_GUID &amp;,_GUID &amp;)
.text:00401240                 add     esp, 8
.text:00401243                 push    offset command  ; &quot;PAUSE&quot;
.text:00401248                 call    _system
.text:0040124D                 pop     ecx
.text:0040124E                 xor     eax, eax
.text:00401250                 pop     ecx
.text:00401251                 pop     ecx
.text:00401252                 pop     ebp
.text:00401253                 retn
.text:00401253 _main           endp
</code></pre>
<p>Das ganze nochmal in C++</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class var
{
    public:
        int v;
};

int main()
{
var c;
var b;
cout&lt;&lt;&quot;ok&quot;;

c.v=1;
b.v=2;

cout&lt;&lt;&quot;c: &quot;  &lt;&lt; &amp;c&lt;&lt;endl;

cout&lt;&lt;&quot;c.v: &quot; &lt;&lt; c .v&lt;&lt;endl;

cout&lt;&lt;&quot;b: &quot; &lt;&lt;&amp;b&lt;&lt;endl;
cout&lt;&lt;&quot;ok2&quot;; 
c.v=8;

cout&lt;&lt;c.v;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
<p>Daher werden meiner Meinung nach durch die Befehle:</p>
<p>c.v=1;<br />
b.v=2;</p>
<p>Zwei Variablen auf dem Stack angelegt, obwohl man ja oben in der Klasse nur eine deklariert hat aber man hat ja die zwei Objekte und diese &quot;werden zu&quot; Variable var. (Aber ein Objekt ist ja auch eine Variable).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191848</guid><dc:creator><![CDATA[srsbsns]]></dc:creator><pubDate>Thu, 15 Mar 2012 11:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Thu, 15 Mar 2012 11:32:56 GMT]]></title><description><![CDATA[<p>Du hast mit</p>
<pre><code class="language-cpp">var c;
var b;
</code></pre>
<p>zwei Variablen auf dem Stack angelegt. Mit</p>
<pre><code class="language-cpp">c.v=1;
b.v=2;
</code></pre>
<p>werden diese beiden benutzt.</p>
<pre><code class="language-cpp">class var
{
    public:
        int v;
};
</code></pre>
<p>definiert keine Variable, sondern eine Klasse - deswegen auch &quot;class&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191850</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Thu, 15 Mar 2012 11:32:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Thu, 15 Mar 2012 11:37:20 GMT]]></title><description><![CDATA[<p>srsbsns schrieb:</p>
<blockquote>
<p>Nochmal kurz zu der Sache &quot;erstellt im Speicher eine neue Variable&quot;.</p>
</blockquote>
<p>Vergiss die Diskussion. Solange du nicht den Unterschied zwischen einer Klasse und einen Objekt (Instanz) verstehst, bringt die Diskussion nichts.</p>
<p>Eine Klasse ist nur eine Schablone, sie existiert nicht im Speicher. Ein Objekt ist eine konkrete Instanz die diese Schablone erfüllt.</p>
<pre><code class="language-cpp">class Auto
{
  public:
    Auto(
      string const &amp; marke)
    : marke(marke)
    {
    }

    string marke;
}

int main()
{
  Auto auto1(&quot;Audi&quot;), auto2(&quot;Ford&quot;); // &lt;-- Jedes Auto hat seinen eigenen Wert für marke
}
</code></pre>
<p>Ob man Vererbung verwendet oder nicht ist dabei völlig egal, eine Instanz hat seine eigenen Variablenwerte.</p>
<p>Wenn man wirklich (was eher selten ist) eine Variable haben will die für alle Instanzen die gleiche ist, muss man diese mit static markieren, dann gibt es wirklich nur eine.</p>
<p>P.S: Wenn man eine Klasse Mensch mit einem Namen hat, erwartet man ja auch nicht das jeder Egon Müller heißt... ;p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191852</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 15 Mar 2012 11:37:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Thu, 15 Mar 2012 11:49:40 GMT]]></title><description><![CDATA[<p>Ich glaub so langsam komm ich dahinter. <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="🙂"
    /><br />
Danke für euere Geduld. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191859</guid><dc:creator><![CDATA[srsbsns]]></dc:creator><pubDate>Thu, 15 Mar 2012 11:49:40 GMT</pubDate></item></channel></rss>