voldemort Geschrieben 9. November 2010 Teilen Geschrieben 9. November 2010 hallo zusammen, kennt jemand ein kleines einfaches programm in dem man eine klasse programmiert hat und auf die daten in jener mit einer funktion zugreift? in meinen lehrbüchern habe ich leider dafür kein bsp und benötige mal eine vorlage zu übungszwecken. kann mir da jemand evtl. mal eben schnell ein bsp hinzaubern? im vorraus danke voldemort Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
unbenannt Geschrieben 9. November 2010 Teilen Geschrieben 9. November 2010 In welcher Sprache hättest Du es denn gerne? C? Dort gibt es keine Klassen. C++? Schmeiss die Lehrbücher weg. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 9. November 2010 Autor Teilen Geschrieben 9. November 2010 in c++ bitte. in den lehrbüchern steht natürlich nur beides getrennt voneinander, aber nirgends ein bsp wie man es kombiniert. grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 9. November 2010 Teilen Geschrieben 9. November 2010 Da hier hier in C++ postest, würde ich sagen, die Aufgabenstellung ist im Grunde mit genau C++ zu lösen, denn jedes C++ benötigt mindestens eine Funktion / Prozedur nämlich die "main" Funktion. Dazu erzeugst Du dann eine Klasse und sobald Du eben diese Klasse inzanzierst, sollte die Aufgabe fertig sein Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 9. November 2010 Autor Teilen Geschrieben 9. November 2010 stimmt..aber;wir machen grad den umstieg von c auf c++ und eigene funktionen schreiben haben wir nie so wirklich durchgenommen da ist es ja klar das man gern erstmal ein richtiges bespiel hat und sich dann durchs programm durcharbeitet. so bin ich bis jetzt eigentlich immer gut gefahren. also es muss wirklich nichts großes sein. nur ein kleines kurzes beispiel bitte. grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 Vielleicht sollten wir hier den umgekehrten Weg gehen: Was hälst Du davon -Deine Mitarbeit vorausgesetzt- gemeinsam ein Beispiel konstruieren? Wir könnten uns bspw. überlegen, wie man eine (primitive) Klasse "Konto" modellieren kann, welche Methoden, welche Eigenschaften, so eine Klasse hat und wie es mit der Sichtbarkeit der Bestandteile aussieht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 Moin! wir machen grad den umstieg von c auf c++ und eigene funktionen schreiben haben wir nie so wirklich durchgenommen Also laut Deinem Post hier kannst Du schon ueber ein Jahr Funktionen programmieren. Analog zu Deinem alten Post koenntest Du ja eine Klasse "Primzahlencheker" schreiben, die eine Methode(Funktion) "istPrimzahl" enthaelt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 10. November 2010 Autor Teilen Geschrieben 10. November 2010 @ Pointerman das war auch so ziemlich die einzige übung mit selbstgeschriebene funktionen die wir gemacht haben. also wenn ich im moment mehr zeit hätte würde ich gern auf das angebot eingehen und gemeinsam mit euch eine lösung finden. das problem ist aber die zeit im moment. ich schreib morgen abend eine klausur und da wäre es sinnvoll das mal zumindest gesehen zu haben. leider hab ich es zeitlich nicht vorher geschafft mich drum zu kümmern da wir momentan in einer klausurphase stecken. dazu kommt natürlich noch der beruf und die familie. ich stell mal nen code einer klasse zur verfügung die wir im unterricht begonnen haben, aber nie beendet haben. class daten { private: char ort [80]; char name [80]; public: }; grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 10. November 2010 Autor Teilen Geschrieben 10. November 2010 (bearbeitet) also ich hab es nun mal probiert komme aber nicht zu einem ergebnis #include "stdafx.h" #include <iostream> using namespace std; class Daten { private: char ort [80]; char name [80]; public: void eingeben (); void anzeigen (); }; void eingeben (void) { printf("Bitte Ort eingeben\n"); gets(ort); printf("Bitte Name eingeben\n"); gets(name); } int _tmain(int argc, _TCHAR* argv[]) { Daten Adresse; eingeben(); return 0; } ich bitte um verbesserung bzw vervollständigung grüße Bearbeitet 10. November 2010 von voldemort Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 void Daten::eingeben () Char-Arrays, (void), printf und gets sind C-Relikte, die benutzt man in C++ eigentlich nicht. Nimm std::string statt char-Arrays. (void) ist in C++ dasselbe wie (), also kannst du dir das void sparen. Statt printf/scanf nimmt man cout/cin. Gets war schon in C böse, weil man keinerlei Möglichkeit hat, einen Pufferüberlauf zu verhindern. Aufrufen kannst du deine Funktion (eigentlich ist es eine Methode) übrigens so: Daten Adresse; Adresse.eingeben();[/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 10. November 2010 Autor Teilen Geschrieben 10. November 2010 mir ist bewusst das ich vieles aus c nehme, aber das problem besteht darin das wir bis jetzt nur strukturen zum einstieg genommen haben und dann direkt in klassen gewechselt haben. jedoch ist der unterricht sehr lückenhaft und die ganzen c++ grundbefehle wie zB cout cin wurden nicht besprochen obwohll man sich gewünscht hätte klein anzufangen. naja...selbst ist der mann. ich habe nun mal mein programm so weit korregiert das es fehlerfrei läuft class Daten { private: char ort [80]; char name [80]; public: void eingeben (); void anzeigen (); }; void Daten::eingeben () { printf("Bitte Ort eingeben\n"); gets(ort); printf("Bitte Name eingeben\n"); gets(name); } void Daten::anzeigen () { printf("%s\n",ort); printf("%s\n",name); } int _tmain(int argc, _TCHAR* argv[]) { Daten Adresse; Adresse.eingeben(); Adresse.anzeigen(); return 0; } mal ein paar verständnis frage. geht es auch die funktion in die main zu schreiben und würde das sinn machen? meine klasse besteht doch aus 160byte;oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 geht es auch die funktion in die main zu schreibenWas stellst du dir darunter vor? Wie soll das aussehen? meine klasse besteht doch aus 160byte;oder?Die Klasse ist nur eine Vorlage, die braucht für sich genommen gar keinen Speicher. Das Objekt von dieser Klasse, das du da anlegst, braucht (mindestens) 160 Bytes. Die Unterscheidung von Klasse und Objekt ist wichtig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 10. November 2010 Autor Teilen Geschrieben 10. November 2010 Was stellst du dir darunter vor? Wie soll das aussehen? das war einfach nur eine frage. ich versuche die möglichkeit herauszufinden ob es so was gibt oder nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 ich versuche die möglichkeit herauszufinden ob es so was gibt oder nicht.Ich weiß nicht, was du mit "so was" meinst! Deswegen habe ich gefragt, was du dir darunter vorstellst. Solange ich nicht weiß, was du mit "in die main" schreiben meinst, kann ich dir nicht sagen, ob das geht. Gib doch mal ein Beispiel. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 10. November 2010 Autor Teilen Geschrieben 10. November 2010 ach so zB habe ich jetzt meine funktionen eingeben und anzeigen ausserhalb des main-programmms angelegt. die frage war nun darauf bezogen ob es möglich ist oder sinn macht die funktionen in das main-programm zu schreiben oder ob es fallunterscheidungen gibt in denen es sinn macht selbstdefinierte funktionen in das main-programm zu schreiben. ich hoffe das war verständlicher Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 Ein Beispiel, wie du dir das vorstellst, war wohl zu viel verlangt. Falls du so etwas meinst: int main() { void Daten::eingeben () { printf("Bitte Ort eingeben\n"); gets(ort); printf("Bitte Name eingeben\n"); gets(name); } Daten Adresse; Adresse.eingeben(); Adresse.anzeigen(); return 0; }[/code]Das geht grundsätzlich nicht, weder in C noch in C++. Du kannst Funktionsdefinitionen nicht verschachteln. Im kommenden C++-Standard wirst du mit Lambda-Ausdrücken lokale Funktionsobjekte anlegen können, aber das würde hier viel zu weit führen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voldemort Geschrieben 10. November 2010 Autor Teilen Geschrieben 10. November 2010 ja das hab ich gemeint und sorry, aber anhand meiner letzten beschreibung dachte ich es wäre klar. sorry falls ich da auch irgendwelche begriffe durcheinander geworfen habe, werde es dann iin zukunft direkt so machen wie gewünscht. grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 Im kommenden C++-Standard wirst du mit Lambda-Ausdrücken lokale Funktionsobjekte anlegen können, aber das würde hier viel zu weit führen. so etwas lässt sich auch jetzt schon via Boost.Lambda lösen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 Ein Beispiel, wie du dir das vorstellst, war wohl zu viel verlangt. Falls du so etwas meinst: int main() { void Daten::eingeben () { printf("Bitte Ort eingeben\n"); gets(ort); printf("Bitte Name eingeben\n"); gets(name); } Daten Adresse; Adresse.eingeben(); Adresse.anzeigen(); return 0; }Das geht grundsätzlich nicht, weder in C noch in C++. Du kannst Funktionsdefinitionen nicht verschachteln. Im kommenden C++-Standard wirst du mit Lambda-Ausdrücken lokale Funktionsobjekte anlegen können, aber das würde hier viel zu weit führen. Vorallem wäre es in meinen Augen nicht sinnvoll, dass in der main() regeln zu wollen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.