.| Autor | Beitrag |
|---|---|
|
000 14.08.2003, 17:45 Quak |
Ich versuche gerade mithilfe des Buches „Visual C++6.0“ von H.-J. Scheibel C++ zu lernen. Ich habe mich bissher erfolgreich durch die erten 2 Kapitel gekämpft und meine alles verstanden zu haben. Allerdings bin ich jetzt in Kapitel 3 „Objektorientierte Programierung“ Ich versuche mal meine Sicht der Dinge zu geben: Die „inline“ Funktion ist mir schon mal unklar und ich sehe keinen Sinn wozu sie benötigt wird. Dann wird die Klasse CDatum deklariert (fals ich falsche Ausdrücke verwende bitte korrigieren). Der Konstruktor, die Bildschirmausgabe und der Destruktor sind Methoden der Klasse CDatum. Das „privat:“ ist auch eine Methode, hier werden die persönlichen Daten des Benutzers bearbeitet. Dann kommt das eigentkiche „Programm“. Static int Laenge verstehe ich noch aber ich hab keinen Schimmer, was diese ganz Max´s und Min´s und die Klammern dahinter bedeuten. Den Rest habe ich glaube ich verstanden. Bitte helft mir das Programm zu verstehen :) Thx Quak -- Coder @ Heat |
|
Profil || Suche |
|
001 14.08.2003, 20:24 K-Putt |
Mit der Deklaration der Klasse CDatum liegst du richtig, Konstruktor, Destruktor passt auch. Max() und Min() sind inline funktionen, ganz genau kann ich dir das nicht erklären, aber jedenfalls werden solche funktionen als inline deklariert die besonders schnell ausgeführt werden müssen und simplen code enthalten. Du siehst ja dass sie Das sollte erstmal die gröbsten Fragen beantworten ;) --Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database Dieser Beitrag wurde am 14.08.2003 um 20:24 von K-Putt bearbeitet. |
|
Profil || Suche |
|
002 14.08.2003, 20:28 the_viking |
Also ich erklär's dir ;) 1. Da oben werden zwei Funktionen 2. Die ganzen Min()s und Max()s wären damit ja auch erklärt (denke ich mal). Sie dienen da anscheinend, um negative Tage bzw. 0-Tage herauszufiltern. 3. Das Schlüsselwort "static" bedeutet, das der Speicher für diese Variable nur einmal reserviert wird. Auch in Klassen. D.h. statische Variablen in Klassen können sozusagen wie globale Variablen behandelt werden. Zugriff könnte man z.B. ebenso mit CDatum::Laenge erhalten. int CStatic::m_iNum = 0; CStatic a,b; printf("%d",CStatic::m_iNum); So wäre die Ausgabe: Ich hoffe, ich hab es dir anschaulich erklärt. Wenn noch Fragen offen sind, immer her damit ;) --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
003 14.08.2003, 20:54 Quak |
Erstmal vielen Dank für die Mühe :) Coder @ Heat Dieser Beitrag wurde am 14.08.2003 um 21:00 von Quak bearbeitet. |
|
Profil || Suche |
|
004 15.08.2003, 12:06 Quak |
Also: Nach einer (fast) schlaflosen Nacht presentiere ich mal meine (Denk)Ergebnisse: 1. Die "inline"-Funktion ist mir immer noch nicht gaaaanz klar, ich habe sie als allgemeingültige Formel aufgefasst in der man die Variablen a und b ersetzten kann. Z.b. "Monat=Max(1,Mt)" kann man dann folgendermaßen in die "inline"-Formel einsetzen "Monat=Max(int 1, int Mt) {return 1>Mt ? 1:Mt;}". 2. Ich versuche mal die Arbeitsweise des Programms nachzuvollziehen: Alles beginnt bei main(). Die Instanze "CDatum Datum1(24,12,1999)" gibt Datum1 einen Wert und einen Zeiger auf die Klasse CDatum. Coder @ Heat |
|
Profil || Suche |
|
005 16.08.2003, 16:11 Leviathan |
Das inline ist hier nicht so wichtig, da der Compiler es sowieso ignorieren kann und es für den Programmierer kaum Unterschiede macht (nur die Implementierung muss mit inkludiert sein, da inline-Funktionen vom Compiler und nicht vom Linker in das Programm gesetzt werden). inline ist übrigends auch keine Funktion, sondern ein specifier (Stroustrup 7.1.1), also eine Art Attribut einer Funktion. Es gibt noch andere specifier, manche nur für Variablen (z.B. register), manche nur für Funktionen (z.B. inline) und manche für beides (z.B. static). Entities: HL | HL² |
|
Profil || Suche |

