18-01-2006, 23:03
|
|
|
חבר מתאריך: 20.12.01
הודעות: 20,962
|
|
לא בדיוק.
יכולות ה-OO של CPP מתחלקות בגסות לשניים: זמן-קימפול וזמן-ריצה. (אפשר לחלק לפי
קטגוריות נוספות, כמובן).
יכולות זמן הריצה גוזלות ביצועים. חלקן פחות(כמו פונקציות וירטואליות), חלקן יותר(כמו RTTI).
יכולות זמן הקימפול לא גוזלות אפילו טיפת ביצועים, אבל עוזרות לליצור קוד קריא יותר, קל יותר
לתחזוק, ו"נכון" יותר באופן כללי.
בין היכולות שיש ל-CPP על פני C שלא יגזלו ביצועים בזמן ריצה שווה לציין: - כימוס - לחלוטין בזמן-קימפול. פשוט מונע מהמפתחים השונים לגעת אחד לשני בזכרון.
- הורשה - לא הכי נפוץ(בטח שלא ב-RT), אבל בזמן קימפול.
- תבניות - זמן-קימפול. יחד עם פונקציות inline מספק תחליף type-safe ועקבי למאקרואים עם פרמטר.
- טריקים קטנים ונחמדים כמו משתני ייחוס וכו'.
הקטע הנחמד הוא שמאחר ומדובר באלמנטים סטטיים, קל(יחסית) לשכפל אותם עבור C,
ולכתוב מתרגם מ-partialCPP ל-C, ולקמפל אותו. פונקציות inline יהיו קצת בעייתיות יותר,
אבל לא בהרבה, להערכתי.
|