במה שונה C מ++C?

gilad_no

New member
זה C ועוד קצת :)

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

galh

New member
קוד ב- C שלא עובד ב- ++C

די פשוט, כל קוד שמשתמש במילה שמורה של ++C שהיא לא מילה שמורה ב- C. לדוגמא: new, delete. כמו כן, יש הבדל בין sizeof.
 
בדיוק ההיפך

השאלה היתה "מה יעבוד ב-C ולא ב-C++". התשובה: כל קוד שמכיל סינטקס של C ולא של C++, לדוגמה, יש הבדל באיך שמגדירים STRUCTS ב-C וב-C++. אם תשתמש בסמנטיקה של C, אז רוב הקומפיילרים של C++ לא יעבירו לך את זה. ב-VISUAL STUDIO לדוגמה, הקומפיילר הנכון מופעל בהתאם לסיומת הקובץ שמכיל את הקוד. כלומר, אם תגדיר STRUCT בסמנטיקה של C, ותשמור אותו בקובץ עם סיומת CPP, אז הקוד לא יתקמפל. אם תשמור אותו בקובץ עם סיומת C, אז הוא יתקמפל כמו גדול.
 

galh

New member
מה פתאום ההפך?

אם תקרא שוב את מה שכתבתי תראה שעניתי בדיוק על השאלה. למיטב ידיעתי אין שום הבדל בין הגדרת struct ב- C ל- הגדרה ב- ++C. על איזה הבדל אתה מדבר?
 
ההיפך

כלומר, הוא שאל "איזה קוד יעבוד ב-C אבל לא ב-C++". NEW, DELETE *לא* יעבדו ב-C. ולגבי ה-STRUCTS, אני אנסה לשחזר את העניין וארשום כאן תגובה.
 

galh

New member
אז פשוט לא הייתי מספיק ברור

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