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 */