[CPP] Struct && Funktionen (erstmalige Anwendung) => Problem || Fehler



  • Also quasi eine Struktur in die Funktion "factory" einbauen mit abc1 und abc2. und dann per Instanz in return eincluden || ? && die parameter Struktur auflösen.



  • squidward schrieb:

    Also quasi eine Struktur in die Funktion "factory" einbauen mit abc1 und abc2. und dann per Instanz in return eincluden || ? && die parameter Struktur auflösen.

    ja.
    nur die struktur nicht in die factory einbauen, sondern global davorklatschen, damit die factory und die main die struktur kennen.



  • volkard schrieb:

    squidward schrieb:

    Also quasi eine Struktur in die Funktion "factory" einbauen mit abc1 und abc2. und dann per Instanz in return eincluden || ? && die parameter Struktur auflösen.

    ja.
    nur die struktur nicht in die factory einbauen, sondern global davorklatschen, damit die factory und die main die struktur kennen.

    Jetzt Okey So? Kann im moment nicht compilen !

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    float factory(float a, float b, float c)
    {
    
        Workers worker;
    
        worker.D = ( pow(b, 2) - 4*a*c );
        worker.abc1 = ( -b + sqrt(D) ) / ( 2*a );
        worker.abc2 = ( -b - sqrt(D) ) / ( 2*a );
    
    return(worker.abc1, worker.abc2);
    
    }
    
    int main(void)
    {
    
            float a;
            float b;
            float c;
    
        do
        {
            cin>>a;
            cin>>b;
            cin>>c;
    
            cout<<factory(a, b, c); // Parameter Übergabe, Funktionsaufruf und Ergebnissausgabe
    
        }
        while(cin.get() != 'b');
    
    }
    
    struct Workers
    {
     public:
        float D;
        float abc1;
        float abc2;
    }
    

    EDIT:

    egal!



  • [quote="squidward"]

    volkard schrieb:

    squidward schrieb:

    Also quasi eine Struktur in die Funktion "factory" einbauen mit abc1 und abc2. und dann per Instanz in return eincluden || ? && die parameter Struktur auflösen.

    ja.
    nur die struktur nicht in die factory einbauen, sondern global davorklatschen, damit die factory und die main die struktur kennen.

    Jetzt Okey So? Kann im moment nicht compilen !

    Workers factory(float a, float b, float c)
    {
        Workers worker;
    
        double D = ( pow(b, 2) - 4*a*c );
        worker.abc1 = ( -b + sqrt(D) ) / ( 2*a );
        worker.abc2 = ( -b - sqrt(D) ) / ( 2*a );
    
        return worker;
    }
    
    ...
            Workers erg=factory(a, b, c);
            cout<<erg.abc1<<' '<<erg.abc2;
    


  • Thanky you volkard!

    I think now in ....... 999999 years i am will be able to for the first time in my boring life to programming in OOP style !

    I hope !



  • #include<iostream>
    #include<cmath>
    using namespace std;
    
    Workers factory(float a, float b, float c)
    {
    
        Workers worker;
    
        float D = ( pow(b, 2) - 4*a*c );
        worker.abc1 = ( -b + sqrt(D) ) / ( 2*a );
        worker.abc2 = ( -b - sqrt(D) ) / ( 2*a );
    
    return(worker);
    
    }
    
    int main(void)
    {
    
            float a;
            float b;
            float c;
    
        do
        {
            cin>>a;
            cin>>b;
            cin>>c;
    
            Workers erg = factory(a, b, c);
            cout<<"x1= "erg.abc1<<"x2= "<<erg.abc2<< endl;
        }
        while(cin.get() != 'b');
    
    }
    
    struct Workers
    {
     public:
        float abc1;
        float abc2;
    
    };
    

    Leider, leider aber es ist die Wahrheit, es gibt wiedermal ONLY erg.abc1 aus ! *wut*



  • cout<<"x1= "<<erg.abc1<<"x2= "<<erg.abc2<< endl;//ein << vergessen
    

    und Workers muss pben in die datei.

    bei mir klapps.

    localhost ti # ./a.out
    1 -13 36
    x1= 9x2= 4



  • volkard schrieb:

    cout<<"x1= "<<erg.abc1<<"x2= "<<erg.abc2<< endl;//ein << vergessen
    

    und Workers muss pben in die datei.

    K! Gibts bei Strukturen wie bei Funktionen Prototypen ?

    bei mir klapps.

    localhost ti # ./a.out
    1 -13 36
    x1= 9x2= 4

    *Neid* wenn ich doch nur jetzt compilen könnte...



  • squidward schrieb:

    K! Gibts bei Strukturen wie bei Funktionen Prototypen ?

    alles, was du benutzen willst, muß dem compiler bekannt sein, also oberhalb deklariert worden sein. auch strukturen.



  • Bei Klassen und Strukturen reicht allerdings eine einfache (Vorwärts-)Deklaration oft nicht, zum Beispiel wenn die Grösse bekannt sein muss. In diesen Fällen muss eine Definition (mit allen Membern) vorliegen.


Anmelden zum Antworten