Problem in (unfertiger) Klasse
-
SeppJ schrieb:
Weil dein show_Mieter nicht zur Klasse Mieter gehört.
Du meinst wohl eher Mieter::show_MieterGut, so hast du meinen pädagogisch wertvollen Unterricht kaputt gemacht

-
skullyan schrieb:
Wenn ich [i+1] entferne, sagt er, dass
NameundVornamenicht deklariert sind und das ist meine eigentliche Sorge...Genau, das beste Mittel gegen Kopfschmerzen sind starke Zahnschmerzen.
-
SeppJ schrieb:
skullyan schrieb:
Ganz so einfach ist es leider nicht, sonst wäre ich nicht auf die Idee gekommen, das hier zu posten. Methodenimplementierung trifft es wohl besser. Wenn ich [i+1] entferne, sagt er, dass
NameundVornamenicht deklariert sind und das ist meine eigentliche Sorge...Weil dein show_Mieter nicht zur Klasse Mieter gehört.
Du meinst wohl eher Mieter::show_MieterMist xD stimmt. Danke@all
-
KasF schrieb:
Ruhig Dravere, gaaanz ruhig

Ehm, kam das rüber, dass ich aktuell genervt bin? Dann möchte ich mich entschuldigen. Nerve mich nur mal wieder über dieses ****** *piep* *** *piep* *zensiert* Linux ...

@skullyan,
Ehm und weil Vorname und Name nicht gefunden wurden, hast du ein [i+1] vorne eingefügt? Oder wie soll man dies Logik verstehen?
Und wieso hast du uns nicht gleich deine eigentliche Sorge mitgeteilt? Jetzt bin ich noch verwirrter über diesen Thread ...
Grüssli
-
Dravere schrieb:
@skullyan,
Ehm und weil Vorname und Name nicht gefunden wurden, hast du ein [i+1] vorne eingefügt? Oder wie soll man dies Logik verstehen?
Und wieso hast du uns nicht gleich deine eigentliche Sorge mitgeteilt?Kommt schon, die Logik versteht ihr doch wohl alle, da muss man ja nicht mehr drauf rumreiten, liebes Forum

-
Wie kann ich das ganze noch mit der WinApi verbinden? Sodass ich eine benutzeroberfläche habe, in der alles Ein- und Ausgegeben wird. Zudem will ich noch wissen, wie ich die Einstellungen speichern kann, es soll ja ein Verwaltungsprogramm werden. Auch das Datum und die Uhrzeit müssen implementiert werden. (Wäre nett, wenn einer der hier zuständigen das ins WinApi Forum verschieben kann)
-
Dravere schrieb:
KasF schrieb:
Ruhig Dravere, gaaanz ruhig

Ehm, kam das rüber, dass ich aktuell genervt bin? Dann möchte ich mich entschuldigen. Nerve mich nur mal wieder über dieses ****** *piep* *** *piep* *zensiert* Linux ...

@skullyan,
Ehm und weil Vorname und Name nicht gefunden wurden, hast du ein [i+1] vorne eingefügt? Oder wie soll man dies Logik verstehen?
Und wieso hast du uns nicht gleich deine eigentliche Sorge mitgeteilt? Jetzt bin ich noch verwirrter über diesen Thread ...
Grüssli
Nein das hat damit nichts zu tun. Nimm es halt als Tippfehler.
-
skullyan schrieb:
Wie kann ich das ganze noch mit der WinApi verbinden? Sodass ich eine benutzeroberfläche habe, in der alles Ein- und Ausgegeben wird. Zudem will ich noch wissen, wie ich die Einstellungen speichern kann, es soll ja ein Verwaltungsprogramm werden. Auch das Datum und die Uhrzeit müssen implementiert werden. (Wäre nett, wenn einer der hier zuständigen das ins WinApi Forum verschieben kann)
Geh's langsam an! Schreibe erst einmal die eigentliche Verwaltung, also die Klassen, in denen deine Daten stehen, die Klassen, die den Kram in Dateien schreiben und daraus lesen. Verwende die Shell (cin und cout) als Oberfläche. Trenne Verantwortlichkeiten (z.B. sollte die Klasse Mieter nichts nach cout schreiben).
Erst wenn du soweit bist, dass dein Verwaltungsprogramm in der Shell gut funktioniert, solltest du eine GUI schreiben. Da kannst du dann vieles aus der ersten Version des Programms wiederverwenden (da du ja Verantwortlichkeiten sorgfältig getrennt hast). Außerdem hast du in deiner bisherigen Arbeit genug gelernt, um dich leichten Herzens dem komplexen Thema GUI zu nähern...
Stefan.
-
Nur, weil noch keiner darauf aufmerksam gemacht hat:
skullyan schrieb:
HEADER:
#ifndef _MIETER_H_ #define _MIETER_H_ #include <iostream> #include <string> [b]using namespace std;[/b]Pfui. In jeder Übersetzungseinheit, die diesen Header einbindet, sind auf einmal alle Namen aus dem std:: Namensraum sichtbar, ohne, dass sie etwas dagegen tun können. ==>
using namespace std;hat in Headern nichts zu suchen.Gruß,
SP
-
Mir sind noch einige kleinere Dinge aufgefallen, die nicht allzu tragisch sind, aber ich möchte sie trotzdem mal erwähnen:
#ifndef _MIETER_H_ #define _MIETER_H_Du solltest Bezeichner nicht mit Unterstrich und Grossbuchstaben beginnen, da diese für den Compiler und die Implementierung reserviert sind. Gleiches gilt für Bezeichner, die zwei aufeinandergefolgte Unterstriche enthalten. Nimm also zum Beispiel
MIETER_H, oder noch besser ein längerer, spezifischerer Name, damit es auch ja nie Namenskonflikte gibt.#include <iostream>Brauchst du das wirklich im Header? Ich versuche bei mir immer, Includes möglichst nur dort zu verwenden, wo sie auch benötigt werden.
~Mieter();Ein einzelner Destruktor ist etwas merkwürdig; nach der Regel der Grossen Drei solltest du Kopierkonstruktor und Zuweisungsoperator ebenfalls überladen oder verbieten. Wenn dein Destruktor nichts tut, kannst du ihn weglassen, dann reicht der standardgenerierte aus.
Mieter MietArray[30]; for(int i = 0; i < 30; ++i) MietArray[i];Hier bist du wahrscheinlich noch nicht fertig, denn der aktuelle Code ist etwas fragwürdig...
Dravere schrieb:
@skullyan,
Ehm und weil Vorname und Name nicht gefunden wurden, hast du ein [i+1] vorne eingefügt? Oder wie soll man dies Logik verstehen?
Und wieso hast du uns nicht gleich deine eigentliche Sorge mitgeteilt? Jetzt bin ich noch verwirrter über diesen Thread ...
Siehst du seine Signatur?
kompilierbar != logisch
Er hat hier wohl versucht, Priorität auf kompilierbar zu setzen...

-
Sebastian Pizer schrieb:
Nur, weil noch keiner darauf aufmerksam gemacht hat:
skullyan schrieb:
HEADER:
#ifndef _MIETER_H_ #define _MIETER_H_ #include <iostream> #include <string> [b]using namespace std;[/b]Pfui. In jeder Übersetzungseinheit, die diesen Header einbindet, sind auf einmal alle Namen aus dem std:: Namensraum sichtbar, ohne, dass sie etwas dagegen tun können. ==>
using namespace std;hat in Headern nichts zu suchen.Gruß,
SPMan lernt, man lernt...
-
Nexus schrieb:
Mir sind noch einige kleinere Dinge aufgefallen, die nicht allzu tragisch sind, aber ich möchte sie trotzdem mal erwähnen:
#ifndef _MIETER_H_ #define _MIETER_H_Du solltest Bezeichner nicht mit Unterstrich und Grossbuchstaben beginnen, da diese für den Compiler und die Implementierung reserviert sind. Gleiches gilt für Bezeichner, die zwei aufeinandergefolgte Unterstriche enthalten. Nimm also zum Beispiel
MIETER_H, oder noch besser ein längerer, spezifischerer Name, damit es auch ja nie Namenskonflikte gibt.#include <iostream>Brauchst du das wirklich im Header? Ich versuche bei mir immer, Includes möglichst nur dort zu verwenden, wo sie auch benötigt werden.
~Mieter();Ein einzelner Destruktor ist etwas merkwürdig; nach der Regel der Grossen Drei solltest du Kopierkonstruktor und Zuweisungsoperator ebenfalls überladen oder verbieten. Wenn dein Destruktor nichts tut, kannst du ihn weglassen, dann reicht der standardgenerierte aus.
Mieter MietArray[30]; for(int i = 0; i < 30; ++i) MietArray[i];Hier bist du wahrscheinlich noch nicht fertig, denn der aktuelle Code ist etwas fragwürdig...
Dravere schrieb:
@skullyan,
Ehm und weil Vorname und Name nicht gefunden wurden, hast du ein [i+1] vorne eingefügt? Oder wie soll man dies Logik verstehen?
Und wieso hast du uns nicht gleich deine eigentliche Sorge mitgeteilt? Jetzt bin ich noch verwirrter über diesen Thread ...
Siehst du seine Signatur?
kompilierbar != logisch
Er hat hier wohl versucht, Priorität auf kompilierbar zu setzen...

Das mit dem Destruktor stimmt, er wurde automatisch generiert als ich eine Klasse erstellt habe (VC++ 2008). Die includes sollte ich tatsächlich nur da verwenden, wo sie benötigt sind, danke! Die Bezeichner sind in meinem Buch genauso definiert, aber ich denke, da schlägt mich mal wieder eure Erfahrung.
