הצורה עם ה.h גם היא מקובלת ולמעשה מאוד נפוצה,
הצורה עם הnamespace היא יותר מודרנית ויש שיאמרו יותר מתאימה
לתכנות OOP. נראה לי מאוד תמוהה שזה עובד בצורה אחת אבל לא
בצורה אחרת זה אמור להיות שקול.בשביל שאני אבין נכון, אתה מקמפל את התוכנית, אתה מריץ אותה
ופשוט לא מקבל שום פלט על המסך והתוכנית מסתיימת בהצלחה?
ואילו כשאתה כותב iostream.h הכל עובד כראוי?
וכל מה שהתוכנית עושה זה cout פשוט. נראה לי ממש מוזר.
(תנסה אוליי לכתוב cerr במקום cout, אולי זה עניין של buffering)
לגבי השאלה השניה, לרוב לקבצים בינארים תחת לינוקס אין סיומת
בכלל, אבל למעשה רוב מוחץ של התוכניות תחת לינוקס בכלל מתעלמות
מהסיומת ומסתכלות על תוכן הקובץ בלבד.
gcc/g++ קצת שונים, ובמקרים מסוימים הם כן מחליטים מה השפה
של התוכנית על פי הסיומת של הקובץ, .c עבור C
cc, CC, C, cpp, CPP עבור C++ וכן עוד סיומת עבור שפות אחרות.
נסה גם אוליי לקמפל בעזרת gcc במקום g++ אפילו שמדובר בקוד C++
DRYICE