Fehler bei einer Programmierung in C++



  • #include <iostream>
    #include <math.h>
    #include <string>

    using namespace std;

    class Bauelement {

    protected:

    string hersteller;

    public:

    Bauelement() {
    hersteller=10;
    }

    Bauelement(string hersteller_in) {
    hersteller=hersteller_in;
    }

    Bauelement(const Bauelement & b) {
    hersteller = b.hersteller;
    }

    virtual Bauelement* operator+(const Bauelement & b);
    virtual Bauelement* operator|(const Bauelement & b);

    };

    class Widerstand:public Bauelement {

    public:

    double hersteller=50;
    Widerstand* operator+(const Widerstand & b);
    Widerstand* operator|(const Widerstand & b);

    void setHersteller(string hersteller_in){

    if(hersteller_in=50){
    hersteller=hersteller_in;
    }

    double getHersteller(){
    return hersteller;
    }

    void beschreibung () {
    cout<<"Das Ergebnis der Widerstaende als Reihenschaltung lautet: "<<(b.bauW1+b.bauW2)<<endl;
    cout<<"Das Ergebnis der Widerstaende als Parallelschaltung lautet: "<<((b.bauW1*b.bauW2)/(b.bauW1+b.bauW2))<<endl;

    }

    };

    int main () {

    cout<<"Die Widerstaende der Hersteller Ohmite und Susumu werden nun als Reihen- und Parallelschaltung als Gesamtwiderstand berechnet"<<endl;

    r.hersteller;
    int r.bauW1=50;
    int r.bauW2=50;

    beschreibung(r);

    return 0;
    }



  • Fehler bei einer Programmierung in C++

    Das ist bedauerlich. Aber vielleicht beruhigt es dich zu wissen, dass es viele C++-Programme gibt, die Fehler haben.

    SCNR,
    Finnegan

    P.S.: Wenn du eine sinnvolle Antwort haben möchtest, wäre es hilfreich zumindest ansatzweise zu beschreiben, wie sich der Fehler manifestiert 😃 (Code-Tags und ein aussagekräftigerer Thread-Titel wären ebenfalls ein Plus)


  • Mod

    Hier eine Liste deiner Fehler mit Zeilennummer und kurzer Erklärung:

    test.cc:73:3: error: expected ‘}’ at end of input
       }
       ^
    test.cc: In member function ‘void Widerstand::setHersteller(std::string)’:
    test.cc:43:24: error: could not convert ‘hersteller_in.std::basic_string<_CharT, _Traits, _Alloc>::operator=<char, std::char_traits<char>, std::allocator<char> >(50)’ from ‘std::basic_string<char>’ to ‘bool’
         if(hersteller_in=50){
                            ^
    test.cc:44:17: error: cannot convert ‘std::string {aka std::basic_string<char>}’ to ‘double’ in assignment
           hersteller=hersteller_in;
                     ^
    test.cc:47:27: error: a function-definition is not allowed here before ‘{’ token
         double getHersteller(){
                               ^
    test.cc:51:26: error: a function-definition is not allowed here before ‘{’ token
         void beschreibung () {
                              ^
    test.cc: In member function ‘int Widerstand::main()’:
    test.cc:66:5: error: ‘r’ was not declared in this scope
         r.hersteller;
         ^
    test.cc:67:10: error: expected initializer before ‘.’ token
         int r.bauW1=50;
              ^
    test.cc:68:10: error: expected initializer before ‘.’ token
         int r.bauW2=50;
              ^
    test.cc:70:19: error: ‘beschreibung’ was not declared in this scope
         beschreibung(r);
                       ^
    test.cc: At global scope:
    test.cc:73:3: error: expected unqualified-id at end of input
       }
       ^
    

    Damit sollte wohl alles klar sein.

    PS: Ich bin mal nicht ganz so fies, auch wenn der Threadersteller es bei solch einem Beitrag nicht anders verdient (vielleicht sollte er mal die Beiträge in meiner Signatur lesen) und setze in Zeile 46 eine schließende Klammer. Es verbleibt:

    test.cc: In member function ‘void Widerstand::setHersteller(std::string)’:
    test.cc:43:24: error: could not convert ‘hersteller_in.std::basic_string<_CharT, _Traits, _Alloc>::operator=<char, std::char_traits<char>, std::allocator<char> >(50)’ from ‘std::basic_string<char>’ to ‘bool’
         if(hersteller_in=50){
                            ^
    test.cc:44:17: error: cannot convert ‘std::string {aka std::basic_string<char>}’ to ‘double’ in assignment
           hersteller=hersteller_in;
                     ^
    test.cc: In member function ‘void Widerstand::beschreibung()’:
    test.cc:52:74: error: ‘b’ was not declared in this scope
         cout<<"Das Ergebnis der Widerstaende als Reihenschaltung lautet: "<<(b.bauW1+b.bauW2)<<endl;
                                                                              ^
    test.cc: In function ‘int main()’:
    test.cc:66:3: error: ‘r’ was not declared in this scope
       r.hersteller;
       ^
    test.cc:67:8: error: expected initializer before ‘.’ token
       int r.bauW1=50;
            ^
    test.cc:68:8: error: expected initializer before ‘.’ token
       int r.bauW2=50;
            ^
    test.cc:70:17: error: ‘beschreibung’ was not declared in this scope
       beschreibung(r);
    

    Das sollte nun aber wirklich selbsterklärend sein.


Log in to reply