Id returned exit status



  • Hallo, bekomme die Fehler Meldung Id returned exit Status,
    was wohl an meiner etwas abenteuerlichen Funktionen liegt.
    Wie könnte ich diese Problem behandeln?

    #ifndef _IOSTREAM
    #define _IOSTREAM
    #include <iostream>
    using namespace std;
    #endif
    
    #ifndef _Ergebnisverwaltung_H_INCLUDED_ 
    #define _Ergebnisverwaltung_H_INCLUDED_  
    
         int hinzufuegen(int ErgebnisMatrikelnummer)
         {
         return ErgebnisMatrikelnummer;
         }
         int ErgebnisMatrikelnummer=0;
    	 int MatrikelStudent=hinzufuegen(ErgebnisMatrikelnummer);
    
    	//void loeschen();
    
    #endif
    


  • Das dürfte wohl ld sein, der sicher auch genauer sagt, was falsch ist. Möglicherweise ist die Funktion hinzufuegen mehrfach definiert, weil du sie im header, aber nicht inline definierst.



  • jetzt bekomm ich die Nachricht in file included,
    wenn ich die Funktiondefnition in die cpp-Datei schreibe,

    #include<iostream>
    using namespace std;
    
    #include "Ergebnisverwaltung.h"
    
       int hinzufuegen(int ErgebnisMatrikelnummer)
       {
       return ErgebnisMatrikelnummer;
       }
    

  • Mod

    Du darfst auch gerne mal versuchen, mehr als eine einzelne Zeile einer Fehlermeldung lesen. Angeblich kann man sie dann auch verstehen.



  • In der .hpp nur
    int hinzufuegen(int ErgebnisMatrikelnummer);

    und in der .cpp dann den code bitte.

    Ähm,
    int ErgebnisMatrikelnummer=0;
    int MatrikelStudent=hinzufuegen(ErgebnisMatrikelnummer);
    gehören auch beide NICHT in eine Header-Datei.


  • Mod

    Wo wir schon dabei sind: Es ist durchaus nicht so unüblich, dass eine Matrikelnummer mit einem Jahreskürzel beginnt (also zum Beispiel 09 für 2009), ziemlich viele Stellen hat, eventuell sogar Buchstaben enthält. Es ist hingegen äußerst unüblich, dass man die Summe oder den Durchschnitt aller Matrikelnummern einer Universität ausrechnen möchte. Vielleicht folgert der Threadersteller sogar etwas aus diesen Aussagen, was den Entwurf seiner Datenstrukturen angeht 😉 .



  • Danke für die Hilfe volkard.



  • volkard schrieb:

    int ErgebnisMatrikelnummer=0;
    [...]
    gehören auch beide NICHT in eine Header-Datei.

    warum nicht? So kann sich den default-Konstruktor sparen.


  • Mod

    daddy_felix schrieb:

    volkard schrieb:

    int ErgebnisMatrikelnummer=0;
    [...]
    gehören auch beide NICHT in eine Header-Datei.

    warum nicht? So kann sich den default-Konstruktor sparen.

    Da ist doch nicht einmal eine Klasse!



  • SeppJ schrieb:

    daddy_felix schrieb:

    warum nicht? So kann sich den default-Konstruktor sparen.

    Da ist doch nicht einmal eine Klasse!

    oh... stimmt. Da hab ich wohl nicht richtig hingeguckt 😉



  • daddy_felix schrieb:

    volkard schrieb:

    int ErgebnisMatrikelnummer=0;
    [...]
    gehören auch beide NICHT in eine Header-Datei.

    warum nicht? So kann sich den default-Konstruktor sparen.

    @Reeko25:

    In den Header nur per Deklaration anmelden, daß es die Variable gibt.

    extern int ErgebnisMatrikelnummer;
    

    Und in der *.cpp sie dann erzeugen (und insbesondere den Speicher anlegen).

    int ErgebnisMatrikelnummer=0;
    

    Sonst wirds knallen, wenn zwei *.cpp diesen Header einbinden, denn dann ist die Variable zweimal da und der Linker ist verwirrt.


Anmelden zum Antworten