פורסם 2005 ביוני 720 שנים שאלו אותנו היום איך אפשר לבצע פוליפורמיזם בלי ביצוע ירושה? למישהו יש מושג מה השיטה?
פורסם 2005 ביוני 720 שנים 1. עם templates (אם לשני classים יש פוקנציה עם אותה חתימה, אז אתה יכול לכתוב template שקורא לפונקציה הזו בלי לדעת איזה אובייקט זה)2. עם פוינטרים לפונקציות (שזה די דומה למה שהקומפיילר עושה, אבל אפשר לעשות כל מיני דברים יותר מעניינים כמו שינוי ירושה תוך כדי ריצה...)(עריכה)אגב, דיברת על C++, נכון?
פורסם 2005 ביוני 720 שנים פוינטרים לפונקציות זה דבר זוועתי, ולא נהוג להשתמש בו ב-c++.(בשביל זה יש functorים - קלאסים שמתנהגים כמו פונקציות)
פורסם 2005 ביוני 720 שנים פולימורפיזם וירושה אלו לא 2 דברים בלתי נפרדים?כאילו כל הקטע שאתה פונה רק אל הBASE CLASS וע"י פונציות וירטואליות, נבחרת הפונציה הנכונה לCLASS הנגזר...
פורסם 2005 ביוני 720 שנים http://www.answers.com/topic/polymorphism?method=5polymorphismMeaning many shapes. In object technology, the ability of a generalized request (message) to produce different results based on the object that it is sent to.זה מגדיר היטב גם פולימורפיזם בירושה וגם בטמפלייטים.
פורסם 2005 ביוני 720 שנים (אופס, הקדימו אותי)פולימורפיזם אומר שכשאתה מבצע (כביכול) את אותה הפעולה על שני אוביקטים שונים, תתבצע פעולה שונה.ירושה זו דרך אחת להגדיר פולימורפיזם.בגלל הבלאגן ובעיות הקריאו?ת של פוינטרים לפוקנציות, יש הרבה שפות שבהן החליטו לוותר על זה (במיוחד כשיש אלטרנטיבות).אבל זה תרגיל נחמד לממש פולימורפיזם ב- C (בלי ירושה ובלי member functions אמיתיים).אגב, איפה שאלו את זה?
פורסם 2005 ביוני 820 שנים תרגיל נחמד? נשמע כמו סיוט בעיקרון כל דבר שממומש ב-C++ אפשר לממש ב-C באמצעות שינויים (יחסית) קטנים. לדוגמה, קלאס עם מת'ודים הופך ל-struct עם פונקציות שמקבלות את הקלאס של פרמטר, וכו'. אם אני לא טועה, הקומפיילר KCC בדיוק פועל בשיטה הזו (מתרגם את הקוד C++ לקוד C ואז מקמפל אותו ב-C).
פורסם 2005 ביוני 820 שנים תרגיל נחמד? נשמע כמו סיוטגם לממש threads בלי עזרה של מערכת ההפעלה זה אפשרי ב-C (כיף גדול לנהל בעצמך stack לכל thread)כל ה"תרגילים" האלה דווקא מאוד עוזרים להבין איך ה"דבר האמיתי" פועל באמת.עד כמה שאני יודע, יש כמה דברים עם templates שקצת בעייתי להמיר ל- C, אבל יכול להיות שאני טועה.
פורסם 2005 ביוני 920 שנים למען האמת לא.templates זה compile-time polymorphism. מיישמים את זה עם ה- pre-processor (ב- C++ עושים את זה ע"י ה- pre-compiler)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.