בעיה...
שלום, יש לי מערך של 6 פוינטרים לפונקציות. המערך נמצא בתוך STRUCT. כלומר לכל מופע של הSTRUCT יש מערך אחר בגודל 6. לכל מופע של המערך אני מגדיר איזה פונקציות אני רוצה שייקראו כאשר אני אשתמש באיבר של המערך. לדוגמא: למערך קוראים BUTTON אז נגיד
שלום, יש לי מערך של 6 פוינטרים לפונקציות. המערך נמצא בתוך STRUCT. כלומר לכל מופע של הSTRUCT יש מערך אחר בגודל 6. לכל מופע של המערך אני מגדיר איזה פונקציות אני רוצה שייקראו כאשר אני אשתמש באיבר של המערך. לדוגמא: למערך קוראים BUTTON אז נגיד
BUTTON[0]=FUNCTION1;
וFUNCTION1 מוגדרת ככה:function1(screen *p);
במקום מסוים בתוכנית אני אשתמש באיבר הזה בצורה הבאה:p->button[0](p);
כאשר P הוא פוינטר לSTRUCT SCREEN והמערך נמצא בתוך ה- STRUCT SCREEN. אני חייב גם לתת את P בתור פרמטר בגלל שהפונקציה FUNCTION1 לא שייכת לSTRUCT SCREEN. וככה אני מגדיר לי מופעים של הSTRUCT הזה ובכל מופע אני מגדיר את האיבר ה-0 להצביע לי על פונקציה אחרת, וככה אני יוצר לי מעין פולימורפיזם נחמד כזה... הבעיה היא שכל הפונקציות שאני משתמש בהם חייבות לקבל בתור פרמטר את הפוינטר P שמצביע על SCREEN... ואני לא יכול להשתמש בפונקציה שמקבלת פרמטרים אחרים... ולרוע המזל זה בדיוק מה שאני צריך עכשיו. יש לי פונקציה שמקבלת כפרמטר INT ובצורה הזאת אני לא יכול להשתמש באיבר ה-0 כדי להצביע עליה (כי היא לא מקבלת STRUCT SCREEN). יש למישהו עצה? יאיר