๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
5 messages
5 total messages Started by Tim Weilkiens Fri, 08 Dec 1995 11:34
struct oder class
#981
Author: Tim Weilkiens
Date: Fri, 08 Dec 1995 11:34
11 lines
676 bytes
Hallo !!!!

Jedesmal wenn ich ein objektorientiertes Programm schreibe, stehe
ich vor dem Problem, ob ich statt eines struct Datentyps eine Klasse
einfuehren soll.

Gibt es da irgendwelche Richtlinien ???

Vielen Dank fuer jede Antwort.

Tim
Re: struct oder class
#980
Author: Dietmar Kuehl
Date: Fri, 08 Dec 1995 12:59
22 lines
1489 bytes
Hi,
Tim Weilkiens (tim-w@pz-oekosys.uni-kiel.d400.de) wrote:
: Jedesmal wenn ich ein objektorientiertes Programm schreibe, stehe
: ich vor dem Problem, ob ich statt eines struct Datentyps eine Klasse
: einfuehren soll.

Grundsaetzlich gibt es zwischen einem 'struct' und einer 'class' nur
einen Unterschied: Der default fuer den Zugriff auf die Member ist bei
einem 'struct' 'public' und bei einer 'class' 'private'. Daher ist es
eigentlich egal, ob ein 'struct' oder eine 'class' verwendet wird.

: Gibt es da irgendwelche Richtlinien ???

Als Richtlinien fuer Klassen (und 'struct's!) gilt in objekt
orientierten Programmen, dass sie eine Abstraktion darstellen sollen
und ihre Implementation nicht zugreifbar haben (Encapsulation). Ob man
das durch ein 'struct' modeliert oder durch eine 'class' macht keinen
Unterschied.
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Re: struct oder class
#983
Author: Kurt Watzka
Date: Fri, 08 Dec 1995 14:43
36 lines
1437 bytes
tim-w@pz-oekosys.uni-kiel.d400.de (Tim Weilkiens) writes:

>Hallo !!!!

>Jedesmal wenn ich ein objektorientiertes Programm schreibe, stehe
>ich vor dem Problem, ob ich statt eines struct Datentyps eine Klasse
>einfuehren soll.

Faustregel: Wenn alle Instanzvariablen oder Elementfunktionen public
sein sollen, dann ist es eine "struct", andernfalls eine "class". Es
gibt keinen Unterschied zwischen "sturct" und "class", ausser dass 
bei einer "class" alle Elemente per default "private" sind, waehrend
sie bei einer "struct" "public" sind. 

Also: 

 class foo {
    public:
      foo(int bar=42, double baz = 3.141506) : m_bar(bar), m_baz(baz) {}
      int m_bar;
      double m_baz;
 };

hat keine andere Bedeutung als

 struct foo {
      foo(int bar=42, double baz = 3.141506) : m_bar(bar), m_baz(baz) {}
      int m_bar;
      double m_baz;
 };

Kurt
--
| Kurt Watzka                             Phone : +49-89-2180-6254
| watzka@stat.uni-muenchen.de
| ua302aa@sunmail.lrz-muenchen.de
Re: struct oder class
#984
Author: Enno Sandner
Date: Fri, 08 Dec 1995 15:20
14 lines
1189 bytes
In article <4a97ri$nd9@solid.theo-physik.uni-kiel.de> tim-w@pz-oekosys.uni-kiel.d400.de (Tim Weilkiens) writes:

   Jedesmal wenn ich ein objektorientiertes Programm schreibe, stehe
   ich vor dem Problem, ob ich statt eines struct Datentyps eine Klasse
   einfuehren soll.

   Gibt es da irgendwelche Richtlinien ???

Sind mir nicht bekannt. Ich verwende struct's auschliesslich fuer Klassen 
bei denen alle Members oeffentlich sind, die keine pure-virtual 
Member-Functions enthalten und die keine mit 'class' deklararierte Klasse 
als Basisklasse haben. Das Ganze ist allerdings reine Geschmackssache.

	Enno
Re: struct oder class
#1004
Author: Michael Voigt
Date: Wed, 13 Dec 1995 12:49
23 lines
1362 bytes
Hallo C-Welt

Am Mittwoch, den 13.12.95 schrieb W.DEHMEL@LINK-R.de folgendes:
> >
> > Jedesmal wenn ich ein objektorientiertes Programm schreibe, stehe
> > ich vor dem Problem, ob ich statt eines struct Datentyps eine Klasse
> > einfuehren soll.
>
> struct: wenn nur Daten drinnen sind.
> class:  wenn neben den Daten auch Funktionen drinnen sind.

Unter Umstรคnden verwende ich auch manchmal struct, wenn nur Kon- und  
Destruktoren auftreten, welche die in der Struktur auftretenden Daten  
verwalten (z.B. ByteArray erstellen und wieder freigeben).
Wenn man aber "total" sauber programmieren will, dann sollte man sich  
meiner Meinung nach voll an Deinen Vorschlag halten.


Michael Voigt
e-mail: michael@amicon.sax.east.de
        michael@sem.lipsia.de
URL:    http://www.lipsia.de/~michael
PGP-key available
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads