next up previous contents index
Next: Der this-Zeiger Up: Klassen Previous: Elementfunktionen (``Member Functions``)

Inline-Elementfunktionen

  Hinweis an den Compiler: Statt Aufruf der Funktion setze den Code der Funktion ein.

Vorteil: Geschwindigkeit.

Nachteil: Größerer Code.

Es gibt zwei Möglichkeiten:

   class date 
   { int day, month, year;
   public:
     void print(void)       // Definition
     { cout << day << "." << month 
            << "." << year << "\n"; }
   };

oder

   class date 
   { int day, month, year;
   public:
     void print(void);      // Deklaration
   };

   inline void date::print(void)
   {   cout << day << "." << month 
            << "." << year << "\n";
   }

Tip:
Definition außerhalb der Klasse kann leichter in inline und zurück verwandelt werden.

Elementfunktionen dürfen natürlich Parameter haben. Hier ein vollständiges Programm:  

#include <iostream.h>

class date 
{   int day, month, year;
  public:
    void set(int d, int m, int y); 
    // besser: Konstruktor (spaeter)
    void print();
    void advance(int);
};

int dayspermonth(int m, int y)
{   static int dpm[] = {0,31,28,31,30,31,30,
                        31,31,30,31,30,31};
    if (m != 2) return dpm[m];
    else return 28 + (y%4 == 0) 
                   - (y%100 == 0) 
                   + (y%400 == 0);
} /* dayspermonth */
    
void date::set(int d, int m, int y) 
    {   day=d;
        month=m;
        year=y;
    } /* date::set */

void date::advance(int n) 
{ int d;
  day+=n;
  while (day > (d = dayspermonth(month,year)))
         {   day -= d;
             if (++month > 12)
             {   month = 1;
                 year++;
             } /* if */
         } /* while */
} /* date::advance */

void date::print()
{    cout << day << "." << month 
          << "." << year << "\n";
} /* date::print */

int main(void)
{   date today;
    today.set(3,5,1993);
    today.advance(235);
    today.print();
} /* main */


next up previous contents index
Next: Der this-Zeiger Up: Klassen Previous: Elementfunktionen (``Member Functions``)

Peter Pfahler, 1997