Zum Inhalt springen

funktion programmieren mit bzw für eine klasse


voldemort

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von voldemort
Link zu diesem Kommentar
Auf anderen Seiten teilen

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

geht es auch die funktion in die main zu schreiben
Was 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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...