15-04-2007, 17:30
|
|
|
חבר מתאריך: 18.01.05
הודעות: 180
|
|
הקונספציה שונה בתכליתו
C היא שפה של תכנות "רגיל" יש קוד תוכנית, בו יש פונקציות ומשתנים, שלהם יש לדוג' scope, כלומר תחום בקוד בהם הם מוגדרים (למשל משתנים מקומיים של פונקציות מוגדרים רק בפונקציות עצמן).
לעומת זאת, C++ היא שפת מונחית אובייקטים: כלומר ניתן למצוא בה 3 תכונות עיקריות שאין בC: encapsulation, inheritence, polymorphizm. תוכל לקרוא עליהן באינטרנט. תוכנה בC++ בנויה ממחלקות, כך שכל מחלקה מייצגת אובייקט מסויים שיש לו מתודות\שיטות(שמתאימות לפונקציות, בC) וproperties (שמתאימים למשתנים בC). לדוג', מחלקה יכולה לייצג את הטיפוס : "בן אדם". בC++, קיימת גם כן התוכנית הראשית,main. בכל מחלקה מגדירים מי הם המשתנים הפרטיים (כלומר ה"scope" שלהם הוא רק ברמת המחלקה, לעומת המשתנים הציבוריים, שניתן לגשת אליהם בכל מקום. יש גם משתנים שמורים, שלא ניכנס להגדרתם כאן). כאשר רוצים להפוך משתני פרטי לציבורי בונים לו שיטה שתחשוף אותו, וזה המשמעות של הencapsulating, שדומה לרעיון הblack box. רעיון הinheritence, הירושה , אומר בגדול, שאם יש מחלקת "בן אדם" ויש מחלקת "תלמיד", הגיוני שמחלקת התלמיד תירש ממנו, את כל השיטות והתכונות שלו. עקרון הpolymorphizm טוען שניתן להתייחס לאובייקט כאל "בן אדם" ואז להגדירו כ"תלמיד", תכונה זו נגזרת מתכונת הירושה (כלומר, לא יכולה להתקיים בלעדיה).
עד כאן, עקרונות השפות. למה צריך C++? זה יותר הגיוני לנו, לתפיסת עולמנו. אנו רואים את העולם לפי אובייקטים, וככל שתתעסק בזה יותר, כך תבין כמה זה נכון.
מבחינה ביצועית, בסופו של יום השפות הללו יוכלו ליצור את אותו התוצר.
|