Datenübergabe bei Funktionen



  • Hallo liebe c++ Community!

    Und zwar habe ich folgendes Problem, ich will in einem programm einen Wert an eine Funktion übergeben und eine andere dann zurück führen!

    Mein Programm besteht aus mehreren .cpp dateien deswegen ist es schlecht den quelltext hier zu posten. Aber ich werd einmal versuchen das kurz zu beschreiben.

    Ich habe 3 .cpp dateien. In der ersten ist die Main funktion, in der zweiten die A Funtkion und in der dritten die B Funktion.

    Das ganze sieht in etwa so aus:

    //Main.cpp
    #include <vcl.h>
    #include <conio.h>
    #include <iostream.h>
    #include "A.cpp"
    
    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    
    int main(int argc, char* argv[])
    {
    
    A();
    
    return 0;
    }
    
    //A.cpp
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #include <conio.h>
    #include <iostream.h>
    #include "B.cpp"
    
    #pragma hdrstop
    
    #include "A.h"
    
    //---------------------------------------------------------------------------
    
    #pragma package(smart_init)
    
    void A()
    {
    int x1=1, x2=5, x3=11, x4=30;
    int xyz;
    
    xyz=B(x1,x2,x3,x4);
    }
    
    /B.cpp
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #include <conio.h>
    #include <iostream.h>
    
    #pragma hdrstop
    
    #include "B.h"
    
    //---------------------------------------------------------------------------
    
    #pragma package(smart_init)
    
    void B(int y1, int y2, int y3, int y4)
    {
    int B;
    
    B=y1+y2+y3+y4:
    
    return(B);
    }
    

    und wenn ich das dann starten will kommt folgende fehler meldung:

    [BCC32 Fehler] B.cpp(196): E2467 'B(int,int,int,int)' kann keinen Wert zurückgeben
    [BCC32 Fehler] A.cpp(36): E2109 Kein zulässiger Typ

    hoffe ich konnte mein problem gut erklären! -

    würde mich über ne antwort freuen.

    mfg Adox



  • Deine Funktion B sollte den Returntyp int haben wenn sie einen int zurückliefern soll. Vielleicht solltest du nochmal in ein Tutorial über Funktionen reinschauen.
    http://tutorial.schornboeck.net/funktionen2.htm



  • Adox schrieb:

    ...

    1. Man includiert in der Regel keine cpp-Dateien (Templates können Ausnahmen darstellen), sondern die Header.

    2. Wenn Funktionen etwas zurückgeben sollten, musst du dies auch angeben.

    <Rückgabetyp> <Funktionsname>(<Parameterliste>);
    

    Dein Rückgabetyp ist void = Keine Rückgabe.
    Ersetz das mal bitte durch int.

    cu André



  • Wie schnell das ging! 😮

    Und danke für die Antworten!

    Durch asc antwort gings sofort, einfach das umgeschrieben und zaaaaack mein programm lief wieder 🙂 ich danke vieeel mals!


Anmelden zum Antworten