Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พื้นฐาน C++: ศัพท์จำเป็นที่นักพัฒนารุ่นใหม่ต้องรู้

สำหรับนักพัฒนาซอฟต์แวร์ที่มุ่งฝัน C++ เสนอโอกาสอาชีพที่เป็นไปได้มากมาย ไม่ว่าคุณจะหลงใหลในการเรียนรู้ของเครื่อง (Machine Learning) การพัฒนาเกม หรือการวิจัยทางวิทยาศาสตร์ คุณสามารถสร้างอาชีพที่ประสบความสำเร็จได้หากคุณเชี่ยวชาญภาษาโปรแกรมมิ่งนี้

เหมือนสาขาอื่นๆ การเขียนโค้ดเกี่ยวข้องกับศัพท์เฉพาะที่เกี่ยวข้องกับภาษาโปรแกรมมิ่งที่คุณกำลังเรียน คู่มือนี้จะอธิบายศัพท์ C++ สำหรับผู้เริ่มต้น 提供รายการศัพท์ C++ คำอธิบายศัพท์ C++ และชีทศัพท์ C++ เพื่อช่วยให้คุณได้ประสบการณ์เรียนรู้ที่ยอดเยี่ยม

C++ คืออะไร?

C++ เป็นภาษาโปรแกรมมิ่งแบบวัตถุ (Object-Oriented) ที่ใช้สร้างแอปพลิเคชันประสิทธิภาพสูงหรือขนาดใหญ่ ภาษานี้พบได้เกือบทุกที่ เพราะขับเคลื่อนเครื่องมือค้นหา การผลิตภาพยนตร์ การเดินทางทางอากาศ แอปพลิเคชันความจริงเสมือน (VR) และแม้แต่การสำรวจดาวอังคาร

นักพัฒนาบ่อยครั้งใช้ C++ สร้างโครงสร้างพื้นฐานซอฟต์แวร์ขนาดใหญ่และแอปที่ทำงานบนทรัพยากรจำกัด C++ สามารถจัดการพื้นที่ฮาร์ดแวร์ได้ง่าย ช่วยให้นักเขียนโปรแกรมปรับโค้ดให้รันได้อย่างมีประสิทธิภาพไม่ว่าสภาพแวดล้อมจะเป็นอย่างไร

ผลลัพธ์คือ C++ สร้างแอปที่รันเร็วและน่าเชื่อถือบนอุปกรณ์มากมาย ทำให้ภาษานี้เหมาะสำหรับแอปพลิเคชันสำคัญส่วนใหญ่ ไม่ว่าคุณจะพัฒนาเครื่องมือทางการเงิน เครื่องมือ Machine Learning เว็บเบราว์เซอร์ ระบบปฏิบัติการ หรืออุปกรณ์ IoT C++ เป็นตัวเลือกที่ยอดเยี่ยม

ใครใช้ศัพท์ C++?

ผู้เชี่ยวชาญหลายกลุ่มใช้ศัพท์ C++ รวมถึงโปรแกรมเมอร์ระดับสูง (Senior Programmers) นักวิเคราะห์คุณภาพ (Quality Analysts) สถาปนิกการเขียนโปรแกรม (Programming Architects) วิศวกรระบบฝังตัว (Embedded Engineers) และนักชีวสารสนเทศ (Bioinformaticians) C++ เป็นองค์ประกอบสำคัญในสาขาส่วนใหญ่ รวมถึงการพัฒนาเกม การวิจัยทางวิทยาศาสตร์ ระบบปฏิบัติการ Machine Learning และเทคโนโลยีทางการแพทย์ ความหลากหลายของ C++ ช่วยให้ผู้เชี่ยวชาญนำไปประยุกต์ใช้ในสาขาส่วนใหญ่ได้

ตัวอย่างเช่น นักพัฒนาซอฟต์แวร์สร้างแอปพลิเคชันธุรกิจ นักพัฒนาเกมสร้างโค้ดเบสสำหรับซอฟต์แวร์เกมที่เกี่ยวข้อง และนักพัฒนาบัคเอนด์ (Backend Developers) สร้างองค์ประมาณฝั่งเซิร์ฟเวอร์ เช่น ระบบสคริปติ้งและจัดการข้อมูล

รายการศัพท์ C++: สิ่งที่นักพัฒนาซอฟต์แวร์ทุกคนควรรู้

  1. Abstract class
  2. Abstract data type
  3. Access control mechanism
  4. Access declaration
  5. Arithmetic assignment operator
  6. Customization point object
  7. Debugging
  8. Executable file
  9. Object
  10. Object code
  11. Object file
  12. Output operations
  13. Source code
  14. Standard template library
  15. Stream exchange input
  16. Stream manipulator
  17. Style of exception handling
  18. Syntax error
  19. Testing
  20. Type

คำอธิบายศัพท์ C++: 5 ศัพท์ C++ พื้นฐาน

หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่มุ่งฝันวางแผนเรียนภาษาโปรแกรมมิ่ง C++ คุณจะพบศัพท์เฉพาะเหล่านี้ ไม่ว่าจะในหลักสูตร C++ ออนไลน์หรือ Coding Bootcamp นั่นคือเหตุผลที่คุณต้องคุ้นเคยกับศัพท์ C++ พื้นฐานดังต่อไปนี้เพื่อประสบการณ์เรียนรู้ที่ดี

Debugging (การดีบั๊ก)

ระหว่างกระบวนการเขียนโค้ด นักพัฒนาอาจทำข้อผิดพลาดการเขียนโปรแกรมทั่วไปที่เรียกว่า "บั๊ก" (Bugs) Debugging หมายถึงกระบวนการระบุและกำจัดบั๊กเหล่านี้

ทำไมนักพัฒนาซอฟต์แวร์ต้องรู้เกี่ยวกับ Debugging

ไม่ว่าจะในโปรแกรมคอมพิวเตอร์หรือระบบ บั๊กขัดขวางประสิทธิภาพของโซลูชันที่ให้ผลลัพธ์ผิดพลาด พวกมันอาจก่อให้เกิดความเสียหายเพิ่มเติม เช่น ทำให้คอมพิวเตอร์หยุดทำงาน (Crash) หรือค้าง (Freeze) ดังนั้น بصفต นักพัฒนาซอฟต์แวร์ คุณจะต้องเข้าใจกระบวนการดีบั๊กเพื่อกำจัดปัญหาเหล่านี้

Object (ออบเจ็กต์ / วัตถุ)

ศัพท์ทั่วไปอีกคำคือ Object ซึ่งหมายถึงพื้นที่หน่วยความจำที่ติดกันและมีชนิด (Type) เช่น String object, Class object และ Static object ออบเจ็กต์ชั้นหนึ่ง (First-class objects) สามารถดำเนินการมาตรฐานได้ เช่น การกำหนดค่า (Assignment) ออบเจ็กต์ชั้นสอง (Second-class objects) มีข้อจำกัดทางไวยากรณ์เฉพาะเมื่อใช้งาน

ทำไมนักพัฒนาซอฟต์แวร์ต้องรู้เกี่ยวกับ Objects

ออบเจ็กต์ C++ เหมือนวัตถุในโลกจริง มักมีสถานะ (States) และพฤติกรรม (Behaviors) ตัวอย่างเช่น ออบเจ็กต์จะมีสถานะในฟิลด์หรือตัวแปร และแสดงพฤติกรรมผ่านเมธอดหรือฟังก์ชัน การเข้าใจหลักการสำคัญนี้จะช่วยคุณในการเขียนโปรแกรมแบบวัตถุ (Object-Oriented Programming)

Syntax Error (ข้อผิดพลาดทางไวยากรณ์)

เมื่อคุณป้อนคำสั่งที่ละเมิดไวยากรณ์ C++ พื้นฐานในฐานะนักพัฒนาซอฟต์แวร์ คุณจะได้ข้อบกพร่องที่เรียกว่า Syntax Error สำหรับแต่ละภาษาโปรแกรมมิ่ง คุณต้องปฏิบัติตามชุดกฎ (Syntax)

ทำไมนักพัฒนาซอฟต์แวร์ต้องรู้เกี่ยวกับ Syntax Errors

ไม่ว่าคุณจะพัฒนาแอปพลิเคชันหรือซอฟต์แวร์ คุณไม่อยากเสียเวลา การเข้าใจข้อผิดพลาดทางไวยากรณ์พื้นฐานจะช่วยคุณหลีกเลี่ยงการติดอยู่กลางโปรเจกต์ C++ หรือใช้เวลานานเขียนโปรแกรมโดยไม่มีผลลัพธ์ จะช่วยประหยัดเวลาและให้ผลลัพธ์ที่ยอดเยี่ยม

Testing (การทดสอบ)

Testing หมายถึงการรันโปรแกรมพร้อมข้อมูลตัวอย่างบนคอมพิวเตอร์เพื่อระบุข้อผิดพลาด สามารถเรียกได้ว่า การประเมินหรือประเมินผลประสิทธิภาพและปัญหาของโปรแกรม

ทำไมนักพัฒนาซอฟต์แวร์ต้องรู้เกี่ยวกับ Testing

ซอฟต์แวร์ต้องปราศจากข้อผิดพลาดเพื่อทำงานได้อย่างมีประสิทธิภาพ นักพัฒนาซอฟต์แวร์สามารถค้นหาและกำจัดข้อผิดพลาดจากซอฟต์แวร์ได้ง่ายเป็นผลมาจากการทดสอบ การทดสอบยังให้มุมมองอิสระและ khách quan ช่วยให้พวกเขาเข้าใจความเสี่ยงที่เกี่ยวข้องกับการนำไปใช้

Type (ชนิด / ประเภท)

Type เป็นคุณสมบัติของชื่อที่ระบุว่านักพัฒนาสามารถใช้ได้อย่างไร คุณจะได้ยินเรื่อง Library type, Return type, Fundamental type และ Function type บ่อยๆ Type สามารถเป็น Exact (แม่นยำ) หรือ Inexact (ไม่แม่นยำ) ตัวอย่างเช่น ใน C++ คุณจะพบชนิดข้อมูลในตัว (Built-in types) พื้นฐานอย่าง int, char, float และ bool Float เป็น Inexact ส่วนที่เหลือเป็น Exact

ทำไมนักพัฒนาซอฟต์แวร์ต้องรู้เกี่ยวกับ Types

เนื่องจาก Type กำหนดค่าจริงที่ตัวแปรหรือฟังก์ชันสามารถรับได้ นักพัฒนาซอฟต์แวร์จึงต้องเข้าใจพวกมัน นอกจากนี้ การเข้าใจ Type Safety ช่วยให้คุณดำเนินการที่เหมาะสม เช่น นิพจน์การบวกเลขคณิต (Arithmetic Addition Expression) หรือนิพจน์พีชคณิต (Algebraic Expressions) รวมถึงรู้วิธีจัดเก็บค่าของพวกมัน

ชีทศัพท์ C++: 5 ศัพท์ C++ ขั้นสูง

พื้นฐาน C++: ศัพท์จำเป็นที่นักพัฒนารุ่นใหม่ต้องรู้

ศัพท์ขั้นสูงอย่าง Linear data structure และ Vtable layout อาจทำให้การเขียนโค้ดเป็นความท้าทาย หลีกเลี่ยงข้อผิดพลาดการเขียนโปรแกรมทั่วไปด้วยชีทศัพท์ C++ นี้

เมื่อคุณก้าวหน้าในการเรียนรู้ C++ คุณจะพบศัพท์ขั้นสูงมากขึ้น เช่น Access control mechanism, Stream manipulator และ Explicit type conversion ชีท C++ นี้ช่วยให้คุณนิยามศัพท์ที่ซับซ้อนมากขึ้น ทำให้ประสบการณ์เรียนรู้สนุกสนานขึ้น

Abstract Data Type (ชนิดข้อมูลนามธรรม)

Abstract data type หรือ ADT หมายถึงชนิดคลาสใดๆ ที่อนุญาตให้ผู้ใช้โต้ตอบผ่านอินเทอร์เฟซระดับสูง (High-level interfaces) เท่านั้น ADT อาจหมายถึงเทมเพลตคลาสสไตล์ STL ในภาษาโปรแกรมมิ่ง C++ เช่น std::priority queue ซึ่งเป็น Abstract base class ทุก Abstract data types เป็น User-defined types อย่างไรก็ตาม คำว่า "Program-defined type" ใช้เพื่อหลีกเลี่ยงความสับสน

ทำไมนักพัฒนาซอฟต์แวร์ควรรู้เกี่ยวกับ Abstract Data Type

นักพัฒนาซอฟต์แวร์ต้องออกแบบและวิเคราะห์อัลกอริทึม โครงสร้างข้อมูล และระบบซอฟต์แวร์เพื่อให้โปรเจกต์สมบูรณ์ ADT ช่วยให้ผู้เชี่ยวชาญเหล่านี้ทำภารกิจทั้งหมดได้อย่างมีประสิทธิภาพ

Customization Point Object (CPO)

Customization point object หรือ CPO หมายถึงออบเจ็กต์ฟังก์ชันที่มีชนิดคลาสซึ่งโต้ตอบกับชนิดที่โปรแกรมกำหนด (Program-defined types) ความยืดหยุ่นของ CPO ช่วยให้การโต้ตอบระหว่างสองอย่างนี้เป็นไปได้พร้อมกับบังคับข้อกำหนดเชิงความหมาย (Semantic requirements)

ทำไมนักพัฒนาซอฟต์แวร์ควรรู้เกี่ยวกับ Customization Point Object

CPO เพิ่มการตรวจสอบแนวคิด (Concept checking) ให้กับจุดการปรับแต่งก่อนหน้า (Preceding customization points) เมื่อสร้างแอปพลิเคชัน คุณสามารถรับข้อความข้อผิดพลาดที่ชัดเจนหากคุณทำผิดกับการสร้างจริงของเทมเพลต (Template instantiation) ดังนั้น CPO จึงเล่นบทบาทสำคัญในการพัฒนาซอฟต์แวร์หรือแอปพลิเคชัน

Exception Handling (การจัดการข้อยกเว้น)

Exception handling เป็นกระบวนการที่นักพัฒนาจัดการข้อผิดพลาดและข้อยกเว้น (Exceptions) โดยไม่ขัดจังหวะประสิทธิภาพมาตรฐานของระบบ Exception handlers ของ C++ ประกอบด้วยคีย์เวิร์ด 3 ตัว: try, throw และ catch

ทำไมนักพัฒนาซอฟต์แวร์ควรรู้เกี่ยวกับ Exception Handling

แรก คำสั่ง try 允许คุณระบุบล็อกโค้ดที่ควรทดสอบขณะกำลังทำงาน คีย์เวิร์ด throw จะโยนข้อยกเว้นเมื่อตรวจพบข้อผิดพลาด อนุญาตให้คุณสร้างข้อผิดพลาดแบบกำหนดเอง (Custom error) สุดท้าย คีย์เวิร์ด catch จะนำคุณไปยังบล็อกโค้ดที่จะถูกดำเนินการหากเกิดข้อผิดพลาดในบล็อก try

Standard Template Library (STL) (ไลบรารีเทมเพลตมาตรฐาน)

STL ซึ่ง Alexander Stepanov สร้างขึ้นสำหรับภาษาโปรแกรมมิ่ง C++ เป็นไลบรารีซอฟต์แวร์ที่ส่งอิทธิพลต่อส่วนใหญ่ของไลบรารีมาตรฐาน C++ มี 4 องค์ประกอบ: อัลกอริทึม (Algorithms) ฟังก์ชัน (Functions) คอนเทนเนอร์ (Containers) และอิเทอเรเตอร์ (Iterators)

ทำไมนักพัฒนาซอฟต์แวร์ควรรู้เกี่ยวกับ STL

เนื่องจาก STL มีชุดคลาสอย่างคอนเทนเนอร์ นักพัฒนาจึงสามารถใช้พวกมันกับชนิดในตัว (Built-in types) (ชนิดตัวชี้, ชนิดพารามิเตอร์, ชนิดต้นไม้) และ UDTs เพื่อดำเนินการพื้นฐานอย่างการคัดลอกและการกำหนดค่า การเข้าใจ STL ยังสำคัญเพราะมันมีอัลกอริทึมอิสระที่ลดความซับซ้อนของไลบรารี

พื้นฐาน C++: ศัพท์จำเป็นที่นักพัฒนารุ่นใหม่ต้องรู้

"Career Karma เข้ามาในชีวิตฉันเมื่อฉันต้องการมากที่สุด และช่วยจับคู่กับ Bootcamp ได้เร็ว สองเดือนหลังจบ ฉันได้งานฝันที่ตรงกับค่านิยมและเป้าหมายชีวิต!"

Venus, วิศวกรซอฟต์แวร์ที่ Rockbot

ค้นหา Bootcamp ที่เหมาะกับคุณ

Stream Manipulators (ตัวปรับแต่งสตรีม)

Stream manipulators เป็นฟังก์ชันที่ปรับแต่งสตรีมอินพุทหรือเอาต์พุท พวกมันไม่เปลี่ยนตัวแปรของชนิดคลาส เช่น Derived class แต่ปรับแต่งสตรีม I/O ผ่านตัวดำเนินการแทรก (Insertion) และดึง (Extraction) Stream manipulators อนุญาตให้คุณปรับแต่งความกว้างฟิลด์และความแม่นยำ คุณยังสามารถเปลี่ยนสถานะรูปแบบ (Format state) ได้

ทำไมนักพัฒนาซอฟต์แวร์ควรรู้เกี่ยวกับ Stream Manipulators

การเข้าใจ Stream manipulators ช่วยให้คุณควบคุมหรือตั้งค่าสถานะของสตรีม ตัวอย่างเช่น ด้วยตัวปรับแต่งบางตัว คุณสามารถ Flush สตรีม แปลงตัวเลขเป็นทศนิยม เปิด/ปิดแฟล็ก (Flags) หรือเอาต์พุทอักขระ Null ได้

ฉันจะเรียนศัพท์ C++ ในปี 2022 ได้อย่างไร? (How Can I Learn C++ Terminology in 2022?)

คุณสามารถเรียนศัพท์ C++ ในปี 2022 ผ่าน Coding Bootcamps การทำเช่นนี้จะช่วยให้คุณได้รับทั้งความรู้และทักษะการเขียนโปรแกรมที่คุณต้องการเพื่อโดดเด่นจากกลุ่ม

คุณยังสามารถเรียนจากหลักสูตรออนไลน์บนแพลตฟอร์มอย่าง Udemy และ Coursera เพื่อให้แน่ใจว่าคุณเชี่ยวชาญ C++ อย่างดี ในฐานะนักพัฒนาที่มุ่งฝัน คุณยังต้องเรียนภาษาโปรแกรมมิ่งหลักอย่าง C++ และ Python

คำถามที่พบบ่อยเกี่ยวกับ C++ (C++ FAQ)

คุณสามารถเรียน C++ ฟรีได้ที่ไหน?

คุณสามารถเชี่ยวชาญ C++ ได้โดยไม่เรียน C ไหม?

ได้ คุณสามารถเชี่ยวชาญ C++ ได้โดยไม่รู้ C เนื่องจากเป็นภาษาโปรแกรมมิ่งที่ต่างกัน ตราบใดที่คุณเข้าใจแนวคิดพื้นฐานของ C++ คุณสามารถขยายความรู้ได้อย่างค่อยเป็นค่อยไปโดยไม่พึ่งพาความรู้ C ก่อนหน้า

แอปดีที่สุดสำหรับเรียนภาษาโปรแกรมมิ่ง C++ คืออะไร?

คุณสามารถเรียนเขียนโปรแกรมเร็วขึ้นได้อย่างไร?

เพื่อเรียนเขียนโปรแกรมเร็วขึ้น คุณควรหาตัวอย่างโค้ด แล้วอ่านและรันพวกมัน คุณควรเริ่มเขียนโค้ดโดยเร็วที่สุด เพราะจะช่วยปรับปรุงทักษะของคุณ คุณยังต้องเรียนรู้วิธีใช้ Debugger และค้นหาแหล่งข้อมูลเพิ่มเติม