[Hilfe] bei Klassen-Aufbau



  • Hallo @ all,

    ich habe mich mal auf ein Feld gewagt auf dem ich mich nicht so gut auskenne
    und wollte mal fragen, ob ihr mir weiterhelfen würdet.
    Die Aufgabe ist hier zu finden:
    http://img.photobucket.com/albums/v92/refugee7/klassen.jpg
    (sorry, aber ohne link wäre es nur sehr schwer darzustellen)

    ich habe mal mit class Konto angefangen:

    class Konto {
    private:
       std::string inhaber_;      // der Unterstrich steht in dem Fall für
                                 //Konto, weil alle variablen damit anfangen
    
       unsigned int nummer_;
       unsigned int stand_;
       unsigned int limit_;
    
    public:
     Konto (std::string const& inhaber,
                 unsigned int const nummer,
                 unsigned int const stand,
                 unsigned int const limit) ;
    
             {  // geschweifte Klammern?
            inhaber_ (inhaber),
            nummer_ (nummer),  
            stand_ (stand),
             limit_ (limit)
          };  // // geschweifte Klammern?
    
          //so wie gehts hier weiter? sprich "Klammerung", code, usw... 
    
         //get-Methode....
    
        std::string getinhaber () const;
        unsigned int getnummer () const;
        unsigned int getstand () const;
        unsigned int getlimit () const;
    
     // wie schreib ich den Destruktor? nur ~Konto() ?
     // und wie schließe ich das ganze ab, bzw. was fehlt noch zur Vollständigkeit?
    

    Vielen Dank schon mal!!!



  • Es gibt zwei Arten um Methoden einer Klasse zu definieren.
    1. Du deklarierst sie in der Klasse und definierst sie dann ausserhalb
    Beispiel:

    class Konto
    {
         private:
                 // Deine "private-Sachen"
         public:
                 Konto(/* Deine Parameter */); // Deklaration
                 // Deine restlichen Methoden
    };
    
    // Definition
    Konto::Konto(/* Deine Parameter */)
    {
            // Die zu erledigenden Aufgaben
    }
    

    2. Du definierst (und deklarierst ihn somit auch implizit) den Konstruktor in der Klasse
    Beispiel:

    class Konto
    {
           private:
                    // Wie gewohnt.
           public:
                    Konto(/* deine Parameter */)
                    {
                       // Aufgaben
                    } 
    };
    

    Am besten merkst du dir:
    Die geschweiften Klammern nimmst du nur bei der Definition von Methoden/Funktionen.
    Bei der Deklaration schreibst du nur den Funktionskopf mit abschliesendem ';'

    //Edit:
    Bzg. dem Destruktor. Du brauchst den Destruktor genau dann, wenn du irgendwelche Sachen von "Hand" erstellst und für sie sozusagen die "Verantwortung übernimmst (z.B. wenn du Speicher auf dem Heap reservierst). Dann solltest du (spätestens) beim Destruktor-Aufruf deine "Verantwortung" wieder abgeben. (im Beispiel also den Speicher wieder freigeben).

    Caipi


Anmelden zum Antworten