125
WSKAŹNIKI NA FUNKCJE
/* kod...*/
void moje.urzadzenie.zamknij (void)
{
/* kod... */
int rejestruj_urzadzenie(struct urządzenie Au) {
/* kod... */
>
int init (void)
struct urządzenie noje.urządzenie; moje.urzadzenie.otworz * moje.urzadzenie.otworz; noje.urzadzenie.zamknij « moje.urzadzenie.zaaknij; rejestruj.urządzenie(Anoje.urzadzenie);
W ten sposób w pamięci każda klasa musi przechowywać wszystkie wskaźniki <k> wszystkich metod. Innym rozwiązaniem może być stworzenie statycznej struktury ze wskaźnikami do funkcji i wówczas w strukturze będzie przechowywany jedynie wskaźnik do tej struktury, np.:
struct urzadzenie.metody { int (*otuorz)(void); void (*zanknij)(void);
);
struct urządzenie {
const struct urzadzenie.metody *m;
int moje.urzadzenie.otworz (void)
/* kod...*/
void moje.urzadzenie.zamknij (void)
{
/• kod... •/
static const struct urzadzenie.metody moje.urzadzenie.metody - { moje.urzadzenie.otworz, moje.urzadzenie.zamknij
>;
int rejestruj.urządzenie(struct urządzenie Au) { /* kod... */
int init (void)