4 Fragen zu C++
-
Hi,
hier meine 5 Fragen:
In dem Buch von B. Stroustrup, wurde in Kapitel 6 ein Taschenrechner entwickelt, in der Main-Funktion wurde so etwas definiert:
table[pi] = 3.14(...)
was ist das genau? Im Index habe ich TABLE nicht gefunden, wie greift man darauf genau zu, um im Endeffekt 3.14... zu bekommen? Ist es ähnlich wie
#define PI 3.1.4(..) ?
Für C gibt es ja NCURSES (bitte nicht nach Linux verschieben!!),
gibt es für C++ etwas ähnliches wie NCURSES, halt mit OO?Wozu ist ENUM eigentlich wirklich da? Stroustrup bringt nur ein Beispiel mit
enum get_token { BLA=';', BLUBB='(' }
und so, für was ist ENUM aber nun echt da?
Wenn ich z.B mit enum ein:
enum { EINS='1' }
mache, kann ich später nicht im Code mit
switch(bla) { case EINS: tuewas... }
nicht zugreifen, da er dann meckert das case nur Zahlen als Argumente haben kann.
Wenn ich eine CLASS habe, sollte ich gleich in der
class { /* code */ };
meine daten initalisieren? Bspw habe ich in
class { private: int a = 12; };
ist das so in Ordnung? Oder sollte ich int a wo anders initalisieren?
und wenn ich eine Funktion in public habe, z.B
public: tue_was();
soll ich tue_was(); gleich initalisieren? Also mit
public: tue_was() { cout << "Hallo Foobar"; }
oder ausserhalb der
class { };
Cu und THX
-
C++-Lerner schrieb:
In dem Buch von B. Stroustrup, wurde in Kapitel 6 ein Taschenrechner entwickelt, in der Main-Funktion wurde so etwas definiert:
table[pi] = 3.14(...)
was ist das genau? Im Index habe ich TABLE nicht gefunden, wie greift man darauf genau zu, um im Endeffekt 3.14... zu bekommen? Ist es ähnlich wie
#define PI 3.1.4(..) ?
der Stroustrup ist fuer Anfaenger eher nicht geeignet. lies lieber etwas anderes, zB Accerlerated C++ oder C++ lernen und professionell anwenden
table ist array, welches vorher irgendwo definiert wurde (bin zu faul die relevante stelle im stroustrup zu suchen)
http://www.netcom.com/~tjensen/ptr/pointers.htmPI ist bei dir eine konstante, hat mit arrays nix zu tun.
Für C gibt es ja NCURSES (bitte nicht nach Linux verschieben!!),
gibt es für C++ etwas ähnliches wie NCURSES, halt mit OO?kannst ja immer noch ncurses verwenden...
bzw. vielleicht interessiert dich: http://tvision.sourceforge.net/
habs aber selber noch nie verwendet.Wozu ist ENUM eigentlich wirklich da? Stroustrup bringt nur ein Beispiel mit
enum get_token { BLA=';', BLUBB='(' }
und so, für was ist ENUM aber nun echt da?
Wenn ich z.B mit enum ein:
enum { EINS='1' }
mache, kann ich später nicht im Code mit
switch(bla) { case EINS: tuewas... }
nicht zugreifen, da er dann meckert das case nur Zahlen als Argumente haben kann.
enum == enumeration == aufzaehlung
zB wenn du
enum Color { red, green, gray, black };
hast, kannst du einfacher damit arbeiten als mit int.
vergleiche:Color color=red; if(color==green) autsch(); //versus int color=7; if(color==9) autsch();
natuerlich koennte man statt 7 und 9 const int variablen definieren - aber mit enum geht es einfacher.
weiters ist enum kein int -> stichwort funktionsueberladung
ausserdem kann man enum sehr gut bei template metaprogrammierung einsetzen.Wenn ich eine CLASS habe, sollte ich gleich in der
class { /* code */ };
meine daten initalisieren? Bspw habe ich in
class { private: int a = 12; };
ist das so in Ordnung? Oder sollte ich int a wo anders initalisieren?
das geht nicht!
du musst sie im Constructor initialisieren.und wenn ich eine Funktion in public habe, z.B
public: tue_was();
soll ich tue_was(); gleich initalisieren? Also mit
public: tue_was() { cout << "Hallo Foobar"; }
oder ausserhalb der
class { };
was du meinst, heisst Definition und nicht initialisierung. siehe diesbezueglich mal ins ANSI C Forum, da war gerade ein thread daruber.
generell lieber den code auslagern und nicht alles in die *.h datei hinein...
-
Zu Pi
Im Kapitel 6.1.1 Der Parser legt er eine map mit "map<string,double> table" an
Diese Map nutzt er um Variablen zu speichern.Im Hauptprogramm legt er die zwei ersten Eintrage dieser map nämlich "PI" und "e" an,
damit sie im Taschenrechner zur Verfügung stehen.Es würde sich auch lohnen sich mal die hier vorhandenen Tutorials durchzuschauen
Der Titel is excellent errinnert mich an folgendes
Die 4 Apostel waren folgende 3 Peter und Paul
-
Lege dieses "tolle" Buch erstmal in die Ecke und fange hier an:
http://home.arcor.de/cpp_kurs/cpp/toc.htm (sehr gut)
http://www.volkard.de/vcppkold/inhalt.html (sehr gut, leider alter Header-Stil, macht aber nichts)
http://www.tutorialpage.de/Cpp2/index.php
-
Erhard Henkes schrieb:
Lege dieses "tolle" Buch erstmal in die Ecke und fange hier an:
http://home.arcor.de/cpp_kurs/cpp/toc.htm (sehr gut)
http://www.volkard.de/vcppkold/inhalt.html (sehr gut, leider alter Header-Stil, macht aber nichts)
http://www.tutorialpage.de/Cpp2/index.phpWar das "toll" ironisch oder ernst gemeint?
Weil ich habe bisher nur gutes über den Stroustroup gehört, und lese ihn gerade selbst und bin eigentlich sehr begeistert.
-
Es war im positiven Sinne ersnst gemeint.
Der Stroustrup und der Kentnissstand von 'C++-Lerner' passen nicht ganz zusammen, deswegen die Empfehlung ein Einsteigerbuch zu nehmen.
Shade Of Mine: der ist fuer Anfaenger eher nicht geeignet. lies lieber etwas anderes, zB Accerlerated C++ oder C++ lernen und professionell anwenden
Und es definitiv keine Kritik an diesem Buch