เกรียนไทยยังชิดซ้าย คุณครูยังอายม้วน เมื่อเจอเด็กนอก ทำข้อสอบ อย่างฮา 555 ++ ...ถ้าตอบตามรูป อาจารย์ให้คะแนน 0 นะ
จะได้คะแนนควรตอบแบบนี้
1) ภาษา C++ มีที่มาจากภาษา C และก็เป็นซุปเปอร์เซต (Superset) ของ C
2) เริ่มต้นทีเดียว C++ จะรู้จักกันว่ามันคือ ภาษา c ที่มีคลาส (class)
3) ใน C++ ได้มีการเปลี่ยนแปลงครั้งใหญ่ โดยการเพิ่มคลาส และมีกลไกลการสืบทอดคลาสของออบเจ็กต์ ไปยังคลาสอื่น ๆ ได้
4) โปรแกรมที่เขียนด้วย C ส่วนใหญ่ สามารถคอมไพล์ด้วย คอมไพลเลอร์ของภาษา C++
5) นิพจน์ (expressions) ใน C++ จะเหมือนในภาษา C
6) ตัวดำเนินการ (operators) ของภาษา C ทั้งหมด สามารถใช้ได้ใน C++
7) ชื่ออย่างไม่เป็นทางการของมาตรฐาน C++ รุ่นใหม่คือ C++14 ประกาศเมื่อ 2014 แต่ในปี 2017 แพลนจะออกเป็นมาตรฐาน C++17 หรือ C++1z
ข้อแตกต่างระหว่าง ภาษา C กับ C++ ทั้งหมด15 ข้อ (เป็นแค่ตัวอย่าง)
####### ภาษา C
1) เป็นภาษาเชิงกระบวนการ (Procedural Language)
2) ไม่มี virtual Functions
3) ไม่มี Polymorphism
4) ไม่มี Operator overloading
5) การออกแบบโปรแกรมเป็นวิธีจากบนลงล่าง "Top down"
6) ไม่มี namespace
7) อนุญาตให้การประกาศตัวแปรโกลบอล (global variables)
8) scanf() ใช้เป็นอินพุต และ printf() ใช้เป็นเอาท์พุต
9) mapping ระหว่างข้อมูลกับฟังก์ชัน จะยากและซ้ำซ้อน
10) สามารถเรียก main() ผ่านฟังก์ชั่นอื่นได้
11) ตัวแปรทั้งหมดต้องประกาศตั้งแต่แรก เมื่อเริ่มเขียนโปรแกรม
12) ไม่มี inheritance
13) malloc() กับ calloc() ใช้จัดสรรหน่วยความ ส่วน free() ใช้ยกเลิกหน่วยความจำที่จัดสรร
14) มีทั้งชนิดข้อมูลแบบ built-in กับแบบพื้นฐาน (primitive data types)
15) ไม่มีกลไกล Exception Handling
####### ภาษา C++
1) เป็นภาษาเชิงวัตถุ (Object oriented Language)
2) มีใช้ virtual Functions
3) มีใช้ Polymorphism ซึ่งเป็นฟีเจอร์สำคัญมากใน OOP
4) Operator overloading เป็นหนึ่งในฟีเจอร์ที่จำเป็น
5) การออกแบบโปรแกรมเป็นวิธีจากล่างไปสู่บน "Bottom up"
6) ใช้ namespace เพื่อหลีกเลี่ยงชื่อซ้ำกัน
7) ไม่อนุญาตให้การประกาศตัวแปรโกลบอล
8) Cin>> ใช้เป็นอินพุต และ Cout<< ใช้เป็นเอาท์พุต
9) mapping ระหว่างข้อมูลกับฟังก์ชัน โดยทำเป็น Objects
10) ไม่สามารถเรียก main() ผ่านฟังก์ชั่นใด ๆ ได้
11) สามารถประกาศตัวแปรที่ใดก็ได้ โดยขอให้อยู่ใน scope ของการเรียกใช้งานครั้งแรก
12) มี inheritance
13) มีตัวดำเนินการอย่าง new กับ delete เพื่อใช้จัดสรรหน่วยความ และยกเลิกหน่วยความจำที่จัดสรร
14) มีทั้งชนิดข้อมูลแบบ built-in กับ define data types
15) มี Exception Handling โดยใช้ Try กับ Catch Block
ข้อแตกต่างมากกว่านี้ ก็ตามลิงค์นี้ (เครดิตคุณ Santi Lertpichitkul)
http://david.tribble.com/text/cdiffs.htm
ที่มา http://www.patanasongsivilai.com/…/เกรียนไทยยังชิดซ้าย-คุณ…/
http://loledhard.com/real-programmers-what-is-difference-be…
Search