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"; }
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 */