Kurs programowania w C cz. 109

Nasza ocena:

5
Wyświetleń: 560
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 109 - strona 1

Fragment notatki:

WSKAŹNIKI NA FUNKCJE 125 /* kod...*/ } void moje_urzadzenie_zamknij (void) { /* kod... */ } int rejestruj_urzadzenie(struct urzadzenie &u) { /* kod... */ } int init (void) { struct urzadzenie moje_urzadzenie; moje_urzadzenie.otworz = moje_urzadzenie_otworz; moje_urzadzenie.zamknij = moje_urzadzenie_zamknij; rejestruj_urzadzenie(&moje_urzadzenie); } W ten sposób w pamięci każda  klasa  musi przechowywać wszystkie wskaźniki do wszyst- kich  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 (*otworz)(void); void (*zamknij)(void); }; struct urzadzenie { 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_urzadzenie(struct urzadzenie &u) { /* kod... */ } int init (void) ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz