globale Variablen in Funktion deklariert



  • Komm hör mir mit der "Mitleids-tour" auf die zieht nicht. Jedoch Du hast dort eingesehen das Du noch kein 1337 bist im Geschäft, sondern noch immer ein Neuling



  • Das habe ich auch nie behauptet.
    Aber jetzt sag mal bitte deine Definition von einer Klasse.

    Was soll man denn groß zu einer Klasse sagen?
    Eine Klasse stellt etwas dar, was Attribute und Methoden hat. Die Attribute beschreiben dabei die Eigenschaften und Zustände der Klasse. Durch die Methoden verändert man an der Klasse bestimmte Eigenschaften, Zustände oder was auch immer.

    An Beispielen geht es sowieso:
    Ein Ball hat eine bestimmte Position.
    Wenn man ihn tritt (treten ist eine Methode), dann verändert sich seine Position.

    Bei Klassen orientiert man sich meistens an echten Objekten, von denen die Zustände oder eben Eigenschaften davon abhängen, was man mit ihnen macht.

    Die Definition erscheint mir logisch, weshalb ist sie dennoch inkorrekt?

    MfG MAV



  • Ich hoffe ihr wohnt schön weit voneinander entfernt.

    Sonst gibt's irgendwann Tote 😃



  • Lieber wäre es mir, wenn hier mal einer sagen könnte, was die Definition ist, der was von C++ versteht.



  • Kindergarten...



  • Also eine Klasse ist ein Kindergarten?
    Ich will die Definition bitte.



  • Hallo,

    Mis2com schrieb:

    Ich will die Definition bitte.

    zu "Klasse" gibt es soviele "Definitionen", mal mehr und mal weniger spezifisch, nur eine davon hier

    http://de.wikipedia.org/wiki/Klasse_(objektorientierte_Programmierung)

    MfG



  • wisst ihr was mich an diesem thread am meisten nervt?
    dass man oben einfach auf logout klicken kann,und seinen launen freien lauf lassen kann,da werden einfach unausgegorene unbegründete behauptungen in den raum geworfen,da wird geflamed bis zum geht nicht mehr, und man ist sicher, man ist ja anonym
    [x]schreiberlaubniserteilung nur für registrierte



  • Der einzige Unregistrierte in dem Thread hier ist ,,nix da'' und da niemand etwas für meine Definitionen sagte, sind sie alle falsch; somit hat ,,nix da'' einfach nur Recht und daher sind seine Posts keineswegs anstößig...



  • ich hab deinen post mal nicht auf ironische standpunkte kontrolliert und nehm ihn mal so wie er da steht:

    du hast recht, niemand hat was für deine definition gesagt, aber es gab auch keinen der auf die seite von nix da getreten ist, der im gegensatz zu dir zu faul/unfähig war eine anständig formulierte begründung abzugeben.

    aus der weiteren gestaltungsweise seiner posts kann man entnehmen dass sie nur der provokation gedacht sind,und somit jegliches recht auf eine weitere gedankliche auseinandersetzung mit ihnen verwirkt ist.



  • Ist nicht ganz wahr, da er mir ja gezeigt hat, dass ich da falsch liege, nicht nur hier, in den anderen Fällen war es korrekt, logischerweise dann auch hier...
    Und das beschäftigt mich, nicht nix da... 😞



  • nix da schrieb:

    Mis2com schrieb:

    Diese hat private Elemente, wobei man nur durch Methoden darauf zugreifen kann.

    Falsch, der Grund? lies "The C++-Language" oder google mal.

    Da stellt sich zunächst die Frage, was eine Methode überhaupt ist?
    Die meisten meinen damit einfach Elementfunktionen, was auch in
    vielen Büchern so geschrieben wird. Stroustrup schreibt in seiner "Bibel"
    allerdings folgendes:

    §12.2.6 (Virtuelle Funktionen)
    ... Eine virtuelle Funktion wird manchmal auch Methode genannt.

    Seit dem vermeide ich den Begriff "Methode" einfach um keine Verwirrung zu stiften.

    Aber zum Thema zurück: Neben Elementfunktionen können auch noch als
    "friend" deklarierte Funktionen auf private Elemente der jeweiligen Klasse zugreifen;
    ich vermute, dass "nix da" auf das hinaus wollte...

    gruß,
    walker



  • Eine Klassendefinition, die alle Möglichkeiten, die man mit C++ dazu hat, abdeckt, lässt sich wohl nicht in wenigen Zeilen schreiben, ich meinte damit eine allgemeine Definition, die aber nicht auf sowas wie friend eingeht.
    Auf den ersten Blick ist eine Klasse sozusagen eine Vorlage, nach der man Objekte bauen kann. Diese Objekte haben bestimmte Eigenschaften, die man als Attribute nimmt, und um diese zu verändern, nimmt man gewöhnlich bestimmte Funktionen, die man Methoden nennt. (soweit ich weiß, ist eine Methode einfach eine Funktion in einer Klasse, jedenfalls sei dies für diese ,,Definition'' angenommen)
    Desweiteren macht es keinen Sinn eine besonders tolle Definition für Klassen zu haben, wenn man sich das irgendwie klarmachen will, sollte man zuerst Klassen mit Objekten in der Welt vergleichen.

    MfG MAV



  • In C++ macht man für Variablen, die von vielen Funktionen modifiziert wird, >auch gerne eine sogenannte Klasse.
    Diese hat private Elemente, wobei man nur durch Methoden darauf zugreifen >kann.
    Das sorgt für Kapselung.

    1. Ich habe ebenfalls bisher die Begriffe Methoden und Elementfunktionen gleichgesetzt. Das Methode eine Bezeichnung für virtuelle Funktionen sein sollen ist mir neu. In Java ist eine Methode jedenfalls eine klasseninterne Funktion (und was anderes gibt es dort ja auch nicht).

    2. In C++ kann man genausogut auch direkt auf die Variablen einer Klasse von außen zugreifen (dass dies sicherlich schlechter Programmierstil ist, ist eine andere Sache). Genauer: Es spielt keine Rolle, ob es sich nun um Variablen oder Funktionen handelt, es kommt nur darauf an, ob sie als public oder als private deklariert sind. Elementfunktionen können ebenso als private deklariert sein, was zur Folge hat, dass sie nur innerhalb der Klasse aufgerufen werden können.



  • Mir ging es nicht darum alle Möglichkeiten abzudecken, was wie schon gesagt bei der unheimlichen Komplexität einer Klasse in C++ kaum geht, sondern darum eine Grundklasse ohne Vererbung, Templates etc. so zu definieren, wie sie i.A. verwendet wird.

    MfG MAV


Anmelden zum Antworten