Für jede Klasse eine Headerdatei oder mehrere in einer?
-
Artchi schrieb:
Wie will ich bitte die Postleitzahl 01689 (von Dresden) in einem int ablegen? Das geht überhaupt nicht! Denn dann würde nur die PLZ 1689 übrig bleiben, und das wäre fachlich einfach falsch.
Du kannst Doch einen int fünfstellig mit führenden Nullen ausgeben.
Mit "fachlich" ist da nichts zu begründen.Ich brauche dafür entweder einen String, oder am besten gleich einen Typ PLZ.
Finde ich auch. Aber der eigene Typ kann sehr wohl innendrin nur int haben.
Evtl. könnte man auch plz mit vier Stellen akzeptieren, und dann aber autom. mit der fehlenden Null versehen.
Das meinen die nicht. Falls jemand noch die alte Postleitzahl 3600 schreibt, ist damit was zwischen 35331 und 35398 gemeint. Deswegen wollen sie fünfstellige Eingaben erzwingen.
-
Artchi schrieb:
Wie will ich bitte die Postleitzahl 01689 (von Dresden) in einem int ablegen? Das geht überhaupt nicht!
Hast recht.
int plz=01689; cout<<plz;
wird nicht compiliert.
-
-
Artchi schrieb:
Wie will ich bitte die Postleitzahl 01689 (von Dresden) in einem int ablegen? Das geht überhaupt nicht!
#include <iostream> void print(unsigned int p); int main() { unsigned int plz = 0x18132; print(plz); } void print(unsigned int p) { for (unsigned int i = 0; p > 0; ++i) { putchar(p % 10 + '0'); p /= 10; } }
Kann ich so nicht stehen lassen. Es handelt sich um ein int.
-
du kennst aber schon printf()/sprintf() und weißt das das mit führenden nullen bei zahlen keine probleme hat?
-
no_code schrieb:
du kennst aber schon printf()/sprintf() und weißt das das mit führenden nullen bei zahlen keine probleme hat?
-
Annahme: Deutsche Postleitzahlen. Ansonsten muss man eh mit Sonderzeichnen rechnen. :p
-
... und was nicht in Vergessenheit hätte geraten dürfen ging verloren.
nämlich, dass das Thema hier nicht die Repräsentation von Postleitzahlen ist.
-
asdas schrieb:
... und was nicht in Vergessenheit hätte geraten dürfen ging verloren.
nämlich, dass das Thema hier nicht die Repräsentation von Postleitzahlen ist.
Naja, doch schon. Kaum was anderes hätte deutlicher zeigen können, wie zweckmäßig der eigene Typ in eigener Datei ist, den man gerne auch als Dauerprovisorium einrichtet. Wobei ich es nicht für Postleitzahlen gemacht habe, sondern für weniger strittige Sachen.
-
Hallo,
mal eine Nebenfrage zu Header-Dateien: Praktiziert jemand statt
#ifndef BLA_BLA_H #define BLA_BLA_H ... #endif
vielleicht so was hier
#ifdef BLA_BLA_H #error Already included. #else #define BLA_BLA_H ... #endif
o.ä. Logik
-
Nein, das wäre viel zu umständlich ohne jeden Gewinn.
-
SeppJ schrieb:
Nein, das wäre viel zu umständlich ohne jeden Gewinn.
Man erkennt Mehrfachinklusionen und schafft sich damit weitere zu lösende Probleme.
-
volkard schrieb:
asdas schrieb:
... und was nicht in Vergessenheit hätte geraten dürfen ging verloren.
nämlich, dass das Thema hier nicht die Repräsentation von Postleitzahlen ist.
Naja, doch schon. Kaum was anderes hätte deutlicher zeigen können, wie zweckmäßig der eigene Typ in eigener Datei ist, den man gerne auch als Dauerprovisorium einrichtet. Wobei ich es nicht für Postleitzahlen gemacht habe, sondern für weniger strittige Sachen.
Aber asdas hat doch wirklich recht: Was hat die Repräsentation an sich denn mit Headerdateien zu tun? Erkläre das mal bitte.
Meiner Meinung nach haben übrigens in manchen Fällen wie PLZ Klassen einfach ihre Berechtigung, nämlich Invarianten sicherzustellen. Man wird ja auch nicht sowas blödes wie:
typedef std::vector<Edge> Polygon;
machen, ein Polygon und eine PLZ sind eben genau durch ihre Daten und ihre Invarianten gegeben.
-
Dr.++ schrieb:
Aber asdas hat doch wirklich recht: Was hat die Repräsentation an sich denn mit Headerdateien zu tun? Erkläre das mal bitte.
Das ist nunmal in C++ praktisch unvermeidbar. Was genau hast Du nicht verstanden?
-
volkard schrieb:
Dr.++ schrieb:
Aber asdas hat doch wirklich recht: Was hat die Repräsentation an sich denn mit Headerdateien zu tun? Erkläre das mal bitte.
Das ist nunmal in C++ praktisch unvermeidbar. Was genau hast Du nicht verstanden?
Habe mich auf die Repäsentation der PLZ mit Ints/Typedefs/Strings usw. bezogen, deshalb auch das vorangegangenem Zitat indem du argumentierst, das sei ein tolles Beispiel für die Headerverwaltung.