000
15.06.2019, 21:18 Uhr
Joana
|
Hallo liebe Community, Ich lerne gerade für eine Klausur und weiß einfach nicht, wie ich es richtig machen soll. Hier ist einmal mein Code:
Code:
C++: |
#include <string>
using namespace std;
class Ereignis { public: virtual string operator ()()=0; virtual Ereignis& operator = (const Ereignis& o) =0; };
class Termin{ protected: int jahr, monat, tag; public: Termin(int, int, int); };
Termin::Termin(int jahr, int monat, int tag): jahr(jahr), monat(monat), tag(tag){}
|
C++: |
#include<sstream> class Geburtstag: public Ereignis, public Termin{
public: Geburtstag(); Geburtstag(const string name, const Termin datum); protected: string name; Termin datum; };
Geburtstag::Geburtstag(const string name, const Termin datum):name(name),Termin(datum.jahr, datum.monat, datum.tag){}
|
In der letzten Zeile habe ich das Problem: In der Aufgabe sind einige Vorraussetzungen gegeben: 1) Sie darf nur den einen Konstruktor haben und keine weiteren Methoden 2) die int-Werte müssen protected sein 3) in dem Geburtstag Konstruktor muss string und Termin übergeben werden
Nun mein konkretes Problem: Weil ich ja Geburtstag von Termin ableite, muss ich im Konstruktor ja auch den Termin Konstruktor vorher aufrufen. Allerdings kann ich diesen nicht befüllen, weil ich nicht auf die jahr, monat und tag werte von Termin zugreifen kann. Außerdem kann ich keinen leeren Konstruktor aufrufen, weil ich den ja nicht erstellen darf... Hat hier jemand Ideen zu Lösung? Vielen Dank Joana Dieser Post wurde am 16.06.2019 um 18:03 Uhr von FloSoft editiert. |