Data Read Template Class
-
und das bringt welchen vorteil mit sich?
danke für den link

-
Das erhöht erstens einmal die Lesbarkeit deines Codes.
Außerdem hat C++ schon Operatoren-Überladungen für alle Grunddatentypen, für eiene Typen kann man den Operator auch einfach selbst überladen.
-
Zudem sind sie typsicher.
-
Wenn man allerdings mit Binärdateien arbeitet, kann man sich die fstreams dahin schieben, wo nie die Sonne scheint.

-
anti-freak schrieb:
und das bringt welchen vorteil mit sich?
Man vergisst nicht das fclose, wie du in deinem Code

-
Ethon schrieb:
Wenn man allerdings mit Binärdateien arbeitet, kann man sich die fstreams dahin schieben, wo nie die Sonne scheint.

Wieso denn das? fstreams können auch mit Binärdaten umgehen, wenn du es wirklich benötigst.
-
314159265358979 schrieb:
Wie wäre es mit:
const unsigned READ_DATA_MAX_LETTER_IN_ROW = 256;Aber hoffentlich nicht global.
anti-freak schrieb:
hier mal die template class:
Class Template, um genau zu sein.
#define SIZE_OF_DATA sizeof(m_caData) / sizeof(char) / READ_DATA_MAX_LETTER_IN_ROWsizeof(char)ist immer 1.TFileInput(void) { m_sFileDirectory = "";Unnötig.
DeleteFileData();In nem Konstruktor??
void DeleteFileData() { if (char *pFileData = GetFileData())Weshalb die Zuweisung? Die Variable benutzt du später nicht mehr.
-
Michael E. schrieb:
314159265358979 schrieb:
Wie wäre es mit:
const unsigned READ_DATA_MAX_LETTER_IN_ROW = 256;Aber hoffentlich nicht global.
Warum nicht global? Für Konstanten ist das doch völlig ok.
-
Was hat denn der Rest des Programms mit einer IO-Konstante zu tun?
-
Michael E. schrieb:
Was hat denn der Rest des Programms mit einer IO-Konstante zu tun?
Genausoviel wie mit der Implementierung der ganzen FileInput-Geschichte. Nämlich nichts.
Der Fehler ist aber nicht, dass die Konstante global definiert wird, sondern dass der ganze Schmu inline im Header implementiert wird.