In einer Methode einer Klasse die Methode einer anderen Klasse aufrufen ?



  • Deine ganzen Annahmen in deinem Code sind falsch.

    Student ist keine AEB; AEB ist keine Hochschule und Student ist auch keine Hochschule. Die Vererbungshirarchie macht so keinen Sinn.

    Warum jetzt ein Kurs von einer Klausur bzw. einem völlig anderen Kurs erben muss erschließt sich mir auch nicht (in Bezug auf deinen Kommentar).



  • was genau will VisualStudio von mir ?

    Vermutlich hast du hochschule.h nicht inkludiert.
    Oder da läuft irgendeine KI, die dich vor deiner unsinnigen Ableiterei schützen will. 😉



  • Jockelx schrieb:

    Oder da läuft irgendeine KI, die dich vor deiner unsinnigen Ableiterei schützen will. 😉

    👍



  • wir sollen lernen basisklassen und abgeleitete klassen zu erstellen

    Ohne den Sinn dahinter zu verstehen ist das nutzlos. Da hilf es auch nicht, wenn man das Ganze noch in einem UML Diagramm malt.

    Ich habe aber die leise Hoffnung, dass du da etwas missverstanden hast und du nicht alles von allem ableiten sollst. Ansonsten lernst du in dem Kurs genau nichts.



  • Um die dennoch einen gedanklichen Einstiegspunkt zu bieten:

    • erstelle eine Klasse "Person" (dient als Basis für Studenten und Dozenten)
    • erstelle eine Klasse "Student" die von "Person" erbt
    • erstelle eine Klasse "Docent" die von "Person" erbt
    • erstelle eine Klasse "Course" (basis für Studiengänge; ob Vererbung notwendig ist weiß ich noch nicht)
    • erstelle eine Klasse University

    Die Klassen sinnvoll verstrickt und mit entsprechender Funktionalität versehen sollten dir schon weiterhelfen.



  • Erstmal vielen Dank an euch !!! Super Forum hier!

    Die Aufgabenstellung lautet:

    - Eine Hochschule besteht aus einer Anzahl von Fachbereichen
    - ein FB offeriert 2 Studiengänge, die zur Laufzeit(Heap) erstellt werden sollen
    - Studierende können sich an genau einem Studiengang einschreiben. Zur Laufzeit soll der Nutzer durch Eingabe eines Namens ein neues Objekt der Klasse Student erzeugen. Der Name soll ein Attribut der Klasse Student sein.
    - Ein Studiengang umfasst maixmal 2 Pflichtvorlesungen, die von Studierenden belegt werden können. Die Belegung der PV soll ebenfalls durch Benutzereingabe möglich sein. Darüber hinaus soll jede PV einen Noteneintrag (Attribut Note vom Typ Integer) möglich sein.

    Folgende Randbedingungen gelten:

    - Es braucht nur ein FB erstellt werden
    - Dieser FB besteht aus 2 Studiengängen (AEB und TI)
    - Ermöglichen Sie das Einschreiben von Studierenden an genau einem Studiengang
    - Ermöglichen Sie das Belegen von jeweils max. zwei PV für einen Studierenden (TI=swt2, math1) und (AEB=swt1, math1)
    - Ermöglichen Sie die Eingabe Note pro PV für einen Studierenden
    - Einfache Ausgabe der Studierenden mit Zuordnung des Studiengangs, PVs und Noten.

    Nun muss ich mir ja erstmal überlegen wieviele Klassen brauche ich:

    - Hochschule
    - Fachbereich
    - Student

    Jetzt würde ich 2 Klassen AEB und TI noch erstellen, welche die Fächerbezeichnungen und Noten als Attribute enthalten ?!? Oder wie soll ich die Klassen wählen ?

    Mir kommen die Fragen auf:

    Für was eine Klasse Hochschule ? Attribute enthält sie ja keine, also nur für die entsprechenden Funktionsaufruf und die entsprechendenen cout's nutzen ?

    Wenn die Klasse Student den Namen der Studenten als Attribut enthalten soll, müssen ja die Klassen Fachbereich bzw. die Studiengänge von dieser Klasse erben.

    Brauche ich eine Klasse Fachbereich , wenn ich nur einen einzigen habe ?

    Soll ich die Kurse/Fächer als Klasse schreiben, welche die Noten als Attribute enthalten ?



  • Jetzt würde ich 2 Klassen AEB und TI noch erstellen,

    Warum Klassen?



  • Weil ich in AEB und TI als Klasse, die Attribute Fächer und Noten geschrieben hätte ?!?



  • Eine Klasse Studiengang und zwei Objekte dieser Klasse.



  • Smuji schrieb:

    Weil ich in AEB und TI als Klasse, die Attribute Fächer und Noten geschrieben hätte ?!?

    Was ist eine Klasse? Was ist ein Objekt?



  • Was ich mich aktuell immer noch frage... laut TE geht es um Vererbung. In der Aufgabenstellung sehe ich keine Gründe für Vererbung. Übersehe ich etwas?



  • Nun ja, eine Klasse ist etwas ähnliches wie eine Struktur

    ein Objekt wird erstellt. bzw. ein Objekt "erweckt diese zum Leben", da eine Klasse ohne objekte nicht nutzbar ist. eine klasse ist sozusagen sowas ähnliches wie ein datentyp...vom funktionsprizip her.

    Klasse Hans
    Private:
    Attribute

    Public:
    Methoden

    und das Objekt erstellt sozusagen eine Instanz der Klasse

    bsp. in main(): Hans objekt verglichen mit einer variablen vom typ integer, ist das objekt vom typ der klasse Hans. ich hoffe dass ich es einigermaßen richtig erklärt habe....verwechsel noch oft die worte attribut, variable, methode, funktion etc.

    @ schlangenmensch..... stimmt, daran habe ich noch garnicht gedacht.
    du meinst:

    Studiengang aeb und Studiengang ti ?

    fur was brauche ich dann den fachbereich als klasse ?

    schreibe ich dann in die klasse studiengang auch die noten und fächer ?

    EDIT:

    @inflames2k: es besteht vermutlich keine notwenigkeit zur vererbung, da wir aber in den UMLs auch lernen sollen mit vererbung etc. umzugehen und da wir in vorherigen aufgaben mit vererbungen gearbeitet haben, wäre es sinnvoll dieses zum verfestigen weiterhin zu nutzen, wenn es sinn macht



  • Smuji schrieb:

    fur was brauche ich dann den fachbereich als klasse ?

    schreibe ich dann in die klasse studiengang auch die noten und fächer ?

    Weil jede Hochschule mehrere Fachbereiche haben kann, die aus verschiednenen Studiengängen besteht.
    Zum Beispeil
    Uni XYZ:
    Fachbereiche: Naturwissenschaften, Geisteswissenschafte
    FB Naturwissenschaften hat die Studiengänge:
    Mathematik, Physik
    Der Studiengang Mathematik hat die Pflichtvolesungen (Fächer):
    Lineare Algebra und Analysis

    Ich kenn kein Fach, welches Noten hat. Der Student, der den Studiengang belegt hat eine Note in dem Fach.



  • Danke ich komme der Sache schon näher.

    - Eine Hochschule besteht aus mehreren (hier nur 1) Fachbereichen

    ....das heißt, HOCHSCHULE ist keine Klasse, sondern nur die einzelnen Fachbereiche stellen Klassen da (hier nur eine). Alle Fachbereiche sind meine Hochschule, sollen aber nicht in einer Klasse Hochschule gebündelt werden, da es sowieso keine Attribute in dieser Klasse Hochschule gäbe.

    -Ein FB offeriert 2 Studiengänge, die zur Laufzeit (Heap) erstellt werden.

    .... das heißt, die einzelnen Studiengänge werden Objekte/Instanzen der Klasse Fachbereich.

    - ein studiengang umfasst max. 2 PVs, die belegt werden können und auch Noteneintragungen zu diesen sollen möglich sein.

    .... das heißt PVs und Noten sind auch Attribute der Klasse Fachbereich ?

    - Es soll eine Klasse Student erstellt werden, welche den Namen der Stundenten als Attribut enthält.

    ... also erbt fachbereich von Student, um den Namen dort zu hinterlegen ? Oder einfach mit hilfe von get- bzw- setmethoden die attribute "schreiben".

    Die Frage ist, wenn ich das so mache, dann habe ich ja nur 2 Klassen ( Fachbereich und Student) ???!?



  • Klasse Hans

    Du beschreibst zwar Klasse/Objekt im Prinzip richtig, zeigst dann aber in deinem Beispiel, das du das nicht verstanden hast.

    class Mensch ...
    
    Mensch hans( "Hans", "im Glück");
    Mensch schneewittchen( "Anna", "Schneewittchen" );
    

    Bevor du weiter an der Aufgabe rummurkst, solltest du deine Unterlagen noch einmal durchgehen.



  • Smuji schrieb:

    Danke ich komme der Sache schon näher.

    - Eine Hochschule besteht aus mehreren (hier nur 1) Fachbereichen

    ....das heißt, HOCHSCHULE ist keine Klasse,

    kalt



  • ich verstehe nicht was du mir unterstellen möchtest. dein obiges beispiel verstehe ich ohne probleme. und ich verstehe auch was eine klasse ist wie sie aufgabaut ist und wie sie zu benutzen ist.

    sorrry, aber dein zweiter post "kalt" ist so hilfreich wie ein hundehaufen für mich.

    du willst mir damit sagen, dass ich eine klasse Hochschule doch benötige ? Für was ? also welche aufgabe stellt diese klasse ? bzw. welche attribute besitzt sie ?

    bis jetzt ergeben die klassen Student und Fachbereich für mich einen Sinn.

    in student wird der name abgelegt. und fachbereich nutze ich für meine instanzen aeb und ti die vom typ fachbereich sind.

    Schreib mir doch bitte mal grob wie für dich die Klassen aussähen und welche Attribute wo stünden ? wenn ich mir die lösungen von einigen kollegen anschaue, besitzen diese 6 Klassen und alles geht über zig seiten...also extrem riesige lösugswege.



  • Smuji schrieb:

    du willst mir damit sagen, dass ich eine klasse Hochschule doch benötige ? Für was ?

    Smujis Aufgabe schrieb:

    - Eine Hochschule besteht aus einer Anzahl von Fachbereichen

    Also bietet sich die Klasse 'Hochschule' als Container für Fachbreiche an.
    Eine Hochschule hat auch Studenten.

    Edit: Bzw. hier in der Aufgabe haben eher Fachbereiche Studenten.



  • Ok, verstehe schon was du sagen willst, aber was mache ich mit der Klasse Hochschule ? Namen werden ja in der Klasse Student hinterlegt und die Noten und Fächer eher in der Klasse Fachbereich..

    Nur welche Methoden oder Attribute sind denn in der Klasse Hochschule sinnvoll ?



  • Smuji schrieb:

    Ok, verstehe schon was du sagen willst

    Offenbar nicht.
    Attribut wäre vector von Fachbereichen und Methoden z.B. 'FachbereichHinzufuegen'


Anmelden zum Antworten