Hausaufgabeproblem
-
Hallo zusammen,
sicherheitshalber will ich klarstellen: Ich will keine Lösung.
So, nun zu meinem Anliegen. Ich hab für mein Fernstudium folgende Einsendeaufgabe:
Entwickeln Sie eine kleine Klassenheterarchie! Zeigen Sie durch geeignete Kontrollausdrücke die Auswirkung von Mehrfachvererbung und wiederholtem Erben! Wie müssen Sie Ihre gewählte Heterarchie in C++ verändern, um das wiederholte Erben zu Unterdrücken?
So Weit, so Gut. Klassenheterarchie kein Ding
struct Foo { int a; Foo(){ a = 1;} }; struct Bar: public Foo { Bar(){ a=2;} }; struct FooBar: public Foo, Bar { FooBar(){ a=5;} }; int main() { FooBar myFooBar; return 0; }Der Compiler meckert hier verständlicherweise wegen mehrdeutigem Zugriff rum.
Aber, wass kann ich mir unter geeigneten Kontrollausdrücken vorstellen? Die Compilerfehler?
Für Denkanstöße in die richtige Richtung wär ich echt dankbar. Ich zerbrech mir schon seid Stunden den Kopf, was der Prof von mir will.Grüße, Con@n.
-
nenn die attribute a, b, und c und mach kontrollausgaben, wie cout<<myFooBar.a<<'\n'; cout<<myFooBar.b<<'\n';, unm nachzuweisen, daß da rumgeerbt wird.
-
Wie müssen Sie Ihre gewählte Heterarchie in C++ verändern, um das wiederholte Erben zu Unterdrücken?
Ich denke, das läuft auf virtuelle Vererbung hinaus (damit in dem gezeigten Beispiel die Klasse 'Foo' - und damit dessen Variable 'a' - nur einmal eingebunden wird).
-
such mal nach "Diamond of Death" vll noch c++ oder oop oder so was dazu.
so nennt sich das problem wenn bei einer mehrfachvererbung ein und das selbe objekt mehrere male in der abgeleiteten klasse ist...bb