klassen



  • // Zeigt die Deklaration einer Klasse und   
    // die Definition von Klassenmethoden
    #include <iostream.h>      
    // für cout
    
    class Cat                   
    // Beginn der Klassendeklaration
    {
        public: // Beginn des oeffentlichen Abschnitts
            int GetAge();           // Zugriffsfunktion
            void SetAge (int age);  // Zugriffsfunktion
            void Meow();            // Allgemeine Funktion
        private:                  // Beginn des privaten Abschnitts
            int itsAge;             // Elementvariable
      };
    
    // Die oeffentliche Zugriffsfunktion GetAge gibt
    // den Wert des Datenelements itsAge zurück.
    int Cat::GetAge()
    {
        return itsAge;
    }
    
    // Definition der oeffentlichen
    // Zugriffsfunktion SetAge .
    // Gibt Datenelement itsAge zurück.
    void Cat::SetAge(int age)
    {
        // Elementvariable itsAge auf den als
        // Parameter age uebergebenen Wert setzen.
        itsAge = age;
    }
    
    // Definition der Methode Meow
    // Rueckgabe: void
    // Parameter: Keine
    // Aktion: Gibt "meow" auf dem Bildschirm aus
    void Cat::Meow()
    {
        cout << "Miau.\n";
    }
    
    // Eine Katze erzeugen, Alter festlegen, Miauen lassen
    // Alter mitteilen lassen, dann erneut miauen.
    int main()
    {
        Cat Frisky;
        Frisky.SetAge(5);
        Frisky.Meow();
        cout << "Frisky ist eine Katze, die " ;
        cout << Frisky.GetAge() << " Jahre alt ist.\n";
        Frisky.Meow();
        return 0;
    }
    

    Moin Moin
    Ich habe grad mit C++ angefangen und bin hier stecken geblieben. Kann mir irgendwer diesen Teil mit den Klassen vernüftig erklären ich raffe das alles nich.

    /edit Bitte das nähste mal auf die formatierung achten



  • ok 🙂
    und wenn du uns genauer erklärst, *was* genau du nicht raffst, wird es sicher auch für dich befriedigender 🙂



  • #include <iostream>       
    
    class Cat                    
    { 
     public: 
        int  getAge();            
        void setAge (int age);   
        void miau();            
     private:                  
        int itsAge;         
    }; 
    
    int Cat::getAge() 
    { 
        return itsAge; 
    } 
    
    void Cat::setAge(int age) 
    { 
        itsAge = age; 
    } 
    
    void Cat::miau() 
    { 
        std::cout << "Miau." << std::endl; 
    } 
    
    int main() 
    { 
        Cat frisky; 
        frisky.setAge(5); 
        frisky.miau(); 
        std::cout << "Frisky ist eine Katze, die " ; 
        std::cout << frisky.getAge() << " Jahre alt ist." << std::endl; 
        frisky.miau();
        std::cin.get(); 
    }
    

    itsAge ist ein gekapseltes Attribut dieser Klasse, das nur über öffentliche Zugriffsfunktionen zugängig ist. Das schützt das Innere der Klasse. Neben den Zugriffsfunktionen get... und set... gibt es noch eine weitere öffentliche Funktion, die kein Attribut berührt.



  • Ah.
    Kommentare die das Herz höher schlagen lassen. Konsistent und hilfreich 😃

    class Cat
    // Beginn der Klassendeklaration
    {

    Irrtum.

    // Definition der oeffentlichen
    // Zugriffsfunktion SetAge .
    // Gibt Datenelement itsAge zurück.
    void Cat::SetAge(int age)
    {
    [...]
    }

    Copy&Paste-Fehler sind doch wirklich die schönsten.



  • Diesen Blödsinn mit Frisky seh ich jetzt schon zum 25. mal ... ist das aus irgendeinem bekannten schlechten Buch oder Tutorial?



  • Das ist aus "Jetzt lerne ich C++" von M&T Kapitel "Basisklassen"

    @Hume das 2. is kein c&p Fehler, das steht so wirklich im Buch 😉



  • @Hume das 2. is kein c&p Fehler, das steht so wirklich im Buch

    😕 Was hat das eine mit dem anderen zu tun? Auch in einem Buch kann ein c&p-Fehler auftreten.



  • Bashar schrieb:

    Diesen Blödsinn mit Frisky seh ich jetzt schon zum 25. mal ... ist das aus irgendeinem bekannten schlechten Buch oder Tutorial?

    oder auch "c++ in 21 tagen"



  • arroganter haufen 👎


Anmelden zum Antworten