Hallo Leute. soll ein Programm erstellen, dass so wie es ist, auch so sein muss. Nur ab der int main..... Anwendung ist ein Fehler beim if else zweig. Könnt ihr mir da helfen?
Vielen Dank schon mal im voraus.
include "stdafx.h"
using namespace System;
// die Klasse baer ref class baer { // beide Attribute müssen jetzt als protected vereinbart werden protected: Int32 gewicht; Int32 alter;
public: // der Konstruktor baer(Int32, Int32); Int32 getGewicht(); Int32 getAlter(); // die Methode zur Ausgabe Void ausgeben(); }; ref class elternBaer : baer { Int32 anzahlKinder;
public: // der Konstruktor elternBaer (Int32, Int32, Int32); Int32 getAnzahlKinder(); Void schock(); // die überschriebene Methode zur Ausgabe Void ausgeben(); };
// die Methoden für die Klasse baer // der Konstruktor baer::baer(Int32 tGewicht, Int32 tAlter) { gewicht = tGewicht; alter = tAlter; } // die Methode liefert das Gewicht zurück Int32 baer::getGewicht() { return gewicht; } // die Methode liefert das Alter zurück Int32 baer::getAlter() { return alter; } // die Ausgabemethode Void baer::ausgeben() { Console::WriteLine("Die Ausgabe erfolgt aus der Klasse {0}.", GetType()); Console::WriteLine("Der Bär ist {0} Jahre alt und wiegt {1} Kilo.",alter,gewicht); }
// die Methoden für die Klasse elternBaer // der Konstruktor elternBaer::elternBaer(Int32 tGewicht, Int32 tAlter, Int32 tKinder): baer(tGewicht, tAlter) { anzahlKinder = tKinder; } Int32 elternBaer::getAnzahlKinder() { return anzahlKinder; } // die Eltern erleiden einen Schock Void elternBaer::schock() { gewicht--; } // die überschriebene Methode zur Ausgabe Void elternBaer::ausgeben() { Console::WriteLine("Die Ausgabe erfolgt aus der Klasse {0}.", GetType()); Console::WriteLine("Der Bär ist {0} Jahre alt, wiegt {1} Kilo und hat {2} Kinder.",alter, gewicht, anzahlKinder); }
int main(array ^args)
{ array <baer^> ^baerenliste = { gcnew baer(200,20), gcnew elternBaer(150,10,2) }; for each(baer ^baer in baerenliste) { if (elternBaer::baer != nullptr) ((elternBaer^)baer)->ausgeben(); } else { baer->ausgeben(); } return 0; }
Diese Frage teilen