Ferseher als Objekt



  • Hast ja Recht 🙄
    Ist so 'ne Macke als WinAPI-ler...



  • "als OBJEKT abbildet" ...

    Mit einer Api klappt das nicht, dafür bedarf es einer objektorientierten Programmiersprache o0 ... oder eine die sich, auf welche Art auch immer, so nutzen lässt.



  • Kahino schrieb:

    "als OBJEKT abbildet" ...

    Mit einer Api klappt das nicht, dafür bedarf es einer objektorientierten Programmiersprache o0 ... oder eine die sich, auf welche Art auch immer, so nutzen lässt.

    @Chrische5
    Bei dir fehlt die Möglichkeit die Lautstärke und Programm zu ändern :p

    EDIT: ui sry, habe wohl ausversehen auf Zitieren anstatt auf editieren geklickt 😮



  • Hallo

    Kahino schrieb:

    @Chrische5
    Bei dir fehlt die Möglichkeit die Lautstärke und Programm zu ändern :p

    chrische5 schrieb:

    soll dir mal einen Gedankenschub bringen.

    chrische

    Ich wollte also nicht alles machen, sondern nur einen Ansatz zeigen.

    chrische



  • Knuddlbaer schrieb:

    Wer sagt denn das es ins WinAPI gehört ?
    Vllt. auch VCL MFC oder CLI ? Eventuell ist es auch eine Linuxanwendung - aber vermutlich doch eher reine console zur Übung ?

    Ja es ist eine consolen Übung.



  • @Chrischi5

    war ja nur ein Scherz, wollte dich nicht irgendwie kritisieren oder dergleichen.



  • Ich hab jetzt so weit gemacht, meint ihr lieg ich richtig ungefähr?

    class fernseher {
    
            int lautstaerke;
            int programm;
            int an;
    
    public:
            void init();
            void setlautstaerke(int aendern);
            void setprogramm(int aendern);
            void getan(int aendern);
            void ausgeben();
    };
    
    void fernseher::init() {
            lautstaerke = 10;
            programm = 1;
            an = false;
    }
    
    //void fernseher::getan(int aendern) {
    
    void fernseher::setlaut(int aendern) {
            char wahl;
            if (getan = false){
            cout << "Fernseher ist aus"<<endl;
            }
            else
            cout << "Hoch mit +"<<endl;
            cout << "Runter mit -"<<endl;
            cout << "Bitte waehlen  :"<<endl;
            cin >>wahl;
            }
    
    void main() {
    


  • An Stelle von

    void fernseher::init()

    nimmt man normalerweise den Konstruktor:

    fernseher::fernseher()

    Der Rückgabetyp von main ist int, nicht void.

    Das Herumgefummel mit cout in fernseher::setlaut finde ich zumindest unschön.

    Und das hier ist höchstwahrscheinlich nicht, was du haben willst:

    if (getan = false){

    Edit: Die obige Zeile würde sowieso nicht funktionieren. Selbst wenn du eine Zuweisung haben wolltest, was du nicht willst, kannst du kein false einer Funktion zuweisen.

    Edit 2: Beim else-Zweig fehlen die {} und übrigens sollte man Variablen immer so spät wie möglich deklarieren.



  • class fern{
          int laut;
          int prog;
          int an;
    public:
          void init();
          void setlaut(int aendern);
          void setprog(int aendern);
          void getan (int aendern);
          void ausgabe();
          };
    
    void fern::init()
    {
            laut = 10;
            prog = 1;
            an = false;
    }
    
    void fern::getan(int aendern)
    {
    }
    
    void fern::setlaut(int aendern)
    {
    }
    
    void fern::setprog(int aendern)
    {
    }
    

    Wie geht es weiter, was und wohin soll ich eintragen, Bitte helft mir.
    Lautstärke und Programme schalten nur wenn der fernseher an ist.



  • Hallo

    Warum ist an kein bool? Wenn du vergleichen willst, musst du == statt = verwenden und wenn du willst, dass man nur umschakten kann, wenn der Fernseher an ist, dann musst du das halt prüfen:

    void fern::setlaut(int aendern)
    {
       if(an)
          laut = aendern;
       else
          cout<<"Fernseher ist aus"<<endl;
    }
    

    Das soll nur ein Beispiel sein und du solltest dir überlegen, ob es nicht sinnvoll wäre die Ausgabe über cout nicht außerhalb von fern zu machen und nur ein bool zurückgeben.

    bool fern::setlaut(int aendern)
    {
       if(an)
       {
          laut = aendern;
          return true;
       }
       else
          return false;
    }
    

    Dann kannste die Ausgabe je nach Rückgabe machen.

    chrische



  • Und wenn wir dir schon mal Tipps geben, wäre es nett, wenn du sie auch beachten würdest. Also noch einmal. Das hier:

    void init();

    und das hier

    void fern::init()

    durch das hier

    fern();

    und das hier

    fern::fern()

    ersetzen.

    Im übrigen kann man im Konstruktor eine Initialisiererliste verwenden. Das sähe dann so aus:

    fern::fern() : laut (10), prog (1), an (false) {}


Anmelden zum Antworten