C ו-C++.

Evil Cherry

New member
C ו-C++.

לפני שאתם שואלים- כן, אני יודע מה השעה. לא, אני לא יודע מה אני עושה ער בשעה כזאת. לא, אני בטח לא יודע למה התחשק לי לשאול שאלות בקשר לתכנות דווקא עכשיו. לא, אם שכבת עם ארקדי דוכין עם אמצעי מניעה אין סיכוי שאת בהריון, אבל בהחלט יש לך טעם מחריד בגברים, וצריך להוציא אותך להורג בהקדם. בסיידר? הבנתי שC++ היא בעצם הרחבה ל-C, כלומר, הוספה מאסיבית של אופציות לשפת C. אם כך, כל תכנית C אמורה לפעול בסביבת (?) C++, ולא להפך. אם כך: 1. מהן, פחות או יותר, האופציות שהוספו ל-C++ ויחדו אותה כשפה מונחית עצמים בנוסף לאופציות שקיימות ב-C? (השאלה היא לא לגבי הפקודות שהוספו- טכנית, אלא לגבי ה"כיוון" שלהן ובמה הן מייחדות את השפה. 2. האם נכון להגיד שתכניתן C++ הוא בהכרח גם תכניתן C? אם לא- מדוע?
 

neko

New member
תכנות מונחה עצמים מהווה שיטת

תכנות שונה לחלוטין מתכנות פרוצדורלי שהיה נהוג ב-C. וזכור לי שהייתה תחרות כאן על "מי יצליח לכתוב קוד בC שלא יעבוד ב++C"...
 

neko

New member
ולא, תוכניתן ++C אינו תוכניתן C.

גם לתכנת פרוצדורלית נכון זאת אמנות שדורשת הרבה לימוד ואימון, ומתכנת שעובד רק בOO, סביר שיקשה עליו לעבור לפרוצדורלי...
 

Evil Cherry

New member
אז...

מבחינת גישת התכנות יהיה לו קשה לעבור. אבל מבחינה טכנית? כלומר, פקודות שונות, או פקודות המתפקדות באופן שונה?
 

neko

New member
הפקודות הבסיסיות של JAVA, C,

++C ו#C (ועוד רבות אחרות אני מניח) כמעט זהות, ההבדל הוא בגישות התכנותיות. מן הסתם בC אין פקודה שיוצרת אובייקט, בJAVA לא תמצא פקודה להקצאת זכרון, וב++C לא תשתמש בפוינטרים.
 

fatfish

New member
תשובות לשאלותיך

1. ה"אופציות" שהוספו ל++C הן כמובן התמיכה בתכנות מוכוון עצמים (Object Oriented) שזה אומר ריבוי צורתיות (פולימורפיזם), הורשה, ועוד מושגים מהתחום...:) כמו כן, הוסר מעלינו הטיפול המעיק בזיכרון והפך לפשוט יותר, עדיין אנו מטפלים בהקצאות זיכרון ושיחרורו באופן ידני, אם כי באופן פשוט יותר. ועוד ועוד ועוד...את כל התשובות לשאולתיך - תוכל למצא בספר של ממציא השפה בראיין סטראוסטרופ. 2. תוכניתן ++C הוא ממש לא בהכרח תכניתן C - את התחביר הבסיסי הוא יודע, אך השוני בין הרעיון התכנותי וכן הדרכים השונות לטפל במצבים מסויימים (ראה דוגמה קודמת, זיכרון) גורם לכך שמי שלמד רק ++C לא ידע לתכנת ב-C.
 
למעלה