counter erhöhen



  • Hallo

    // Klasse wird deklariert
    class Klasse
    {
    };
    
    // Instanz von Klasse mit Namen "instanz" wird deklariert und initialisiert
    Klasse instanz;
    // Noch eine Instanz derselben Klasse
    Klasse instanz2;
    

    bis bald
    akari



  • Cool, Danke! Das ist ja einfach - wenn ich also eine Klasse vererbe, ist die neue Klasse ein Instanz der Ursprungsklasse... Dann weiß ich doch worum es geht 🙂
    Wenn ich also eine static-Variable in einer Klassenmethode definiere und die Klasse dann vererbe (instanziiere?), greift die Methode der Klasseninstanz auf dieselbe Variable zu wie die Ursprungsklasse (selbe Speicherstelle). Ich kann somit den Inhalt einer Variablen auch vererben. Im Gegensatz dazu wird eine Member-Variable neu angelegt (zusätzliche Speicherstelle). Right? Hab ichs?



  • Hallo

    Vererbung hat mit Instanzierung nichts zu tun. Wo siehst du in meinem Code eine Vererbung?

    bis bald
    akari



  • Ne mit vererben hat das ganze hier noch garnichts zu tun.
    Selbst wenn du deine Klasse vererbst kannst du niemals den Inhalt der Membervariablen vererben.
    Du definierst in deiner Klasse deine Variable counter.
    Dann kannst du 1000 Klassen instanzieren und hast dann insgesamt auch 1000 verschiedene Counter, die nur in der eigenen Instanz gültig sind.



  • Damn, ich hab's geahnt - doch nix begriffen... Ich schau mal bei Wiki, was ne Instanz ist. Dachte das wär ne Kopie der Klasse... 😞

    Edit: Also für OttoNormalProleten ist die Instanz(Informatik)-Erklärung bei Wiki nich geschrieben 🤡

    Eine Folgerung trotzdem: Eine Instanz einer Klasse hat die Eigenschaften der Klasse, ist aber keine neue Klasse und deswegen hat das auch nichts mit Vererbung zu tun... ?



  • Naja in Wiki würde ich da nicht schauen.
    Ich würde eher ein Tutorial zu C++ Grundlagen suchen.



  • Hallo

    Eine Klasse ist ein Konzept. Eine Instanz ist die konkrete Umsetzung dieses Konzepts mit der du im Arbeitspeicher agieren kannst.
    Als Beispiel Mensch und Person :
    Der Begriff "Mensch" definiert eine Klasse von Lebewesen mit genau festgelegten Merkmalen, die sie von andern Klassen wie Affen unterscheidet. Eine konkrete Person wie ich zum Beispiel ist eine Instanz dieser Klasse Mensch, nicht identisch mit anderen Personen der gleichen Klasse aber doch durch das gleiche zugrundeliegende Klassenprinzip ähnlich.

    bis bald
    akari



  • Na das meinte ich doch vorhin schon, ich kriegs bloß immer nicht richtig ausgedrückt - Wenn ich ein Objekt (Instanz) mit Hilfe einer Schablone (Klasse) erstelle, dann sah ich das bisher als Vererbung an, wenn das Objekt dann grundlegende Eigenschaften (und Methoden) der Klasse hat und nutzen kann.
    Teilweise sind die Begrifflichkeiten ziemlich blöd gewählt finde ich... Wenn ich eine Zeichnung freihand kopiere, "vererbe" ich ja im Prinzip der neuen Zeichnung auch grundlegende Merkmale der Vorlage (Größe, Formen, Farben), obwohl die Kopie der Zeichnung ja eine Instanz der Vorlage ist...



  • Hallo

    Nein der Begriff Vererbung ist dafür ganz klar falsch, den Vererbung ist in OOP etwas ganz anderes. Verwende Fachbegriffe nur in der Bedeutung für die sie auch definiert sind.

    bis bald
    akari



  • Ok, ich geb mir trotz Wirrungen Mühe! Man wird ja auch (Wodan und Donar sei Dank) immer gleich drauf hingewiesen, wenn man etwas grundverkehrt betitelt (siehe Vektoren) 🙂



  • Kolumbus schrieb:

    Ok, ich geb mir trotz Wirrungen Mühe! Man wird ja auch (Wodan und Donar sei Dank) immer gleich drauf hingewiesen, wenn man etwas grundverkehrt betitelt (siehe Vektoren) 🙂

    Darum ist es besonders ratsam vor Benutzung von Klassen wie z.B. der VCL erstmal zu wissen was Klassen überhaupt sind.
    Das Thema wird in jedem C++ Tutorial behandelt und damit wird etwas über die Grundlagen von C++ behandelt.


Anmelden zum Antworten