Privates Datenelement erzeugen
-
Ich mache gerade eine Übungsaufgabe.
Ich muss in einer Klasse ein privates Datenelement Geburtstag date erzeugen
weis jemand wie man sowas macht
-
Was hast du schon versucht?
-
1.1 Implementieren Sie eine Klasse Person mit den privaten Datenelementen name (Typ char-Array der Größe 80)
und born (Typ: Date). Die Datenelemente sollen durch einen Konstruktor mit folgender Parameterliste initialisiert
werden:
Person(const char *pname, int d, int m, int y); // Name, Tag, Monat, Jahr
Außerdem soll eine befreundete Funktion operator<<() zur Verfügung gestellt werden, mit deren Hilfe die Daten
einer Person ausgegeben werden.Das ist die Aufgabenstellung
-
liouiouio schrieb:
Das ist die Aufgabenstellung
Das war nicht die Frage.
-
Ich hab statt Date born 3 private Datentypen (int) genommen
-
zfghf schrieb:
Ich hab statt Date born 3 private Datentypen (int) genommen
3*int != Date
Und es steht halt Date in der Aufgabenstellung.
-
komm net weiter!
-
fhgzf schrieb:
3*int != Date
Und es steht halt Date in der Aufgabenstellung.Mag sein, aber in C++ gibt es keinen Date-Datentyp. Entweder die Aufgabe enthält noch mehr (z.B. erstellen einer Date-Klasse oder Vorgabe einer bestimmten Bibliothek...) oder da hat jemand die Aufgaben von einer Sprache in eine Andere übertragen und einiges Übersehen (zumal ich char[80] für Strings auch schon daneben finde - irgendwie kennen Dozenten/Lehrer keinen std::string).
Und der Rest (privates Datenelement erzeugen) ist wiederum so trivial das ich hier nur auf irgendein x-beliebiges Tutorial oder Buch verweise.
-
class Date
{
private:
int day, month, year;public:
Date(int d, int m, int y)
{
day = d;
month = m;
year = y;
}
friend ostream &operator<<(ostream &os, const Date &dt);
};
inline ostream &operator<<(ostream &os, const Date &dt)
{
return os << dt.day << '.' << dt.month << '.' << dt.year;
}class Person
{
char name[80];
Date *born;
public:
Person(const char *pname, int d, int m, int y)
{
strcpy(name,pname);
//Date bo(d,m,y);
born = new Date(d,m,y);
}
friend ostream &operator<<(ostream &os, const Person &dt);
};Hab noch ein wenig was herausgefunden. Ne klasse Date gabs allerdings ohne StandartKonstruktor gehe ich dan richtig in der annahme das ich das ganze dann
als Date *born definiernen muss weil Date born ja ohne Standk nicht geht oder
-
Lukaslukas schrieb:
...
1. Benutze bitte die C/C++ Tags für die Codeformatierung.
Lukaslukas schrieb:
Hab noch ein wenig was herausgefunden. Ne klasse Date gabs allerdings ohne StandartKonstruktor gehe ich dan richtig in der annahme das ich das ganze dann als Date *born definiernen muss weil Date born ja ohne Standk nicht geht oder
Da liegst du falsch. Dazu gibt es die Initialisierungsliste.
class Person { char name[80]; Date born; public: Person(const char *pname, int d, int m, int y) : born(d,m,y) // Initialisierungsliste { // Hier existieren die Elemente bereits, und du machst eine // Zuweisung, keine Initialisierung. //... } ...Dennoch frage ich mich warum auf die C-Bibliothek und C-Strings zurückgegriffen werden soll.
cu André
-
wieder was gelernt danke
mit der String klasse gehts auch