הממ.. לא ידעתי שזה סינטקס חוקי.
בגדול זה נראה כמו הגדרה של סוג של מצביע לפונקציה. בד"כ זה נראה ככה:
typedef int (*dog_fight)(dog&,int);
(שים לב שהשם עכשיו הוא בתוך סוגריים ויש * לפניו) עכשיו אפשר להגדיר מצביע לפונקציה מהסוג הזה (שמקבלת reference ל-dog ו-int ומחזירה int) כך:
dog_fight pPointerToFunction;
ולאתחל אותו ככה:
int dog_fight_func1(dog &i_dog1,int i_data) { return i_data; } pPointerToFunction = &dog_fight_func1;
ואפשר גם בלי ה-&, הקומפיילר מבין גם את זה:
pPointerToFunction = dog_fight_func1;
והקריאה בעזרת המצביע נראית ככה:
int result = (*pPointerToFunction)(some_dog,12);
ואפשר גם בלי הסוגריים והכוכבית, הקומלייר מבין גם את זה:
int result = pPointerToFunction(other_dog,344);