Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Klassen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.07.2003, 20:02 Uhr
~cmos
Gast


Hallo,
muß eine Klasse eigentlich immer private enthalten ?
Wie kommt man eigentlich zu seinem Objekt ?
Stehen unter Private nur variablen ?
Was würde unter Private beispielsweiße stehen wenn es
ein Klasse fürs schreiben in eine Datei sein soll ?

gruß,
cmos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.07.2003, 21:43 Uhr
Pablo
Supertux
(Operator)


private, public, protected, usw. erzeugen die Gültigkeitsbereiche der Elemente der Klasse, d.h:

private: Alle Variablen (und Objekte anderer Klassen) und Funktionen sind private. Nur Funktionen der Klasse können auf diese Element zugreifen und sie ändern. Alle andere Funktionen, die außerhalb der Klasse liegen (bsp: int main()) können diese Elemente nicht "sehen", d.h können auf sie nicht zugreifen und ändern. (Das gilt sogar für abgeleitete Klassen dieser Klassen)

public: Öffentliche Elemente (Variablen, Objekte anderer Klassen und Funktionen), die öffentlich sind, können von allen Funktionen des gesamten Programmes gesehen werden und verändert werden.

protected: Diese Elemente sind in der Klasse zugänglich, alle Funktionen der Klassen können auf sie zugreifen und ändern. Für Funktionen außerhalb der Klasse sind sie private und für abgeleitete Klassen sind sie public, Funktionen der abgeleitete Klassen können auf sie zugreifen und ändern.

Deklaration:

C++:
class XYZ
{
    public:
    // Ab diesem Punkt sind alle Deklarationen öffentlich
    *
    *
    *
    private:
    // Bis hierher sind alle public und ab diesem Punkt sind alle private
    *
    *
    *
    protected:
    // Bis hierher private und ab hier protected, usw...
};


Wenn ich mich nicht irre ist private das Standard.

Wegen der Klasse, die gespeichert werden muss: Das kommt darauf an, was für eine Klasse du machen willst, was sie speichern muss, und wer diese Daten speichern muss.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.07.2003, 09:22 Uhr
ao

(Operator)



Zitat:
~cmos postete
Stehen unter Private nur variablen ?


Nein. Die Aktionen, die in den public-Methoden nacheinander ausgeführt werden, können sehr umfangreich sein. Oder es gibt Blöcke, die sich in mehreren public-Methoden wiederholen. Dann macht es Sinn, diese in kleinere Methoden auszugliedern, die in den public-Methoden aufgerufen werden.

Diese kleineren Methoden sind dann üblicherweise private, damit sie von außen nicht erreichbar sind; sie machen ja nur eine Teilaufgabe, die niemand so ohne Zusammenhang aufrufen soll. Oder sie sind protected, wenn auch abgeleitete Klassen sie brauchen können

Zitat:

Was würde unter Private beispielsweiße stehen wenn es
ein Klasse fürs schreiben in eine Datei sein soll ?


Wenn es eine Klasse ist, die das FILE-Interface aus der C-Runtime-Lib verpackt, gehört auf alle Fälle der FILE*-Pointer in den private-Teil.

Im allereinfachsten Fall wars das auch schon, denn die Umverpackungen um fopen, fwrite und fclose könnten die public-Methoden selbst sein.

Komplexere Fälle sind natürlich denkbar, aber da wäre es gut, du würdest erst mal deinen Code zeigen, damit wir hier alle über dasselbe reden und nicht ins Blaue hinein Vorschläge machen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: