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

ความแตกต่างระหว่าง Fundamental Data Types และ Derived Data Types ใน C++

บทนำ

ในการเขียนโปรแกรม ชนิดข้อมูล (data type) หมายถึงประเภทและลักษณะของข้อมูลที่ผู้ใช้ต้องการจะใช้ คอมไพเลอร์หรืออินเตอร์พรีเตอร์จะจัดการตามชนิดข้อมูล และจัดสรรพื้นที่จัดเก็บในหน่วยความจำหลัก (main memory) ตามนั้น

จากลักษณะของข้อมูล ชนิดข้อมูลหลักแบ่งได้ 2 ประเภท คือ Fundamental Data Type (ชนิดข้อมูลพื้นฐาน) และ Derived Data Type (ชนิดข้อมูลที่สืบทอดมา) ทั้งสองชนิดนี้ใช้ในการเขียนโปรแกรมและมีความสำคัญเท่าเทียมกันเมื่อต้องนำตรรกะทางธุรกิจมาใช้กับข้อมูล

ความแตกต่างสำคัญระหว่าง Fundamental และ Derived Data Types

ลำดับหัวข้อFundamental Data TypesDerived Data Types
1นิยามตามชื่อ Fundamental data type คือชนิดข้อมูลที่แท้จริงและถูกนำเสนอโดยภาษาเอง เช่น มีลักษณะเฉพาะและคุณสมบัติพื้นฐาน พร้อมวิธีการพื้นฐานในการดำเนินการกับข้อมูลเหล่านั้นในทางกลับกัน Derived data types คือชนิดข้อมูลที่ประกอบด้วย fundamental data types หมายถึง สืบทอดมาจาก fundamental data types และมีคุณสมบัติเพิ่มเติมหรือปรับเปลี่ยนจาก fundamental data types
2การนำไปใช้Fundamental data types ในภาษาใดภาษาหนึ่งถูกนำไปใช้ในรูปแบบที่แน่นอน (concrete) เช่น มีชนิดข้อมูลพื้นฐานคงที่ในแต่ละภาษา เช่น ใน C++ คือ character, integer, float, และ voidในทางกลับกัน Derived Data Type ในการเขียนโปรแกรมถูกนำไปใช้ในรูปแบบนามธรรม (abstract) เนื่องจากนิยามถูกกำหนดโดยผู้ใช้ว่าจะจัดการกับข้อมูลประเภทใด เช่น Pointers, arrays, structures และ unions
3ข้อมูลCharacter data type ใช้เก็บตัวอักษร และแบ่งได้เป็น char, Signed char, Unsigned charในทางกลับกัน Pointers ใช้เก็บที่อยู่ของตัวแปร แทนที่จะเก็บค่าของตัวแปร
4การกำหนดค่าInteger ใช้สำหรับกำหนดและเก็บจำนวนเต็ม (ไม่มีทศนิยม) และแบ่งได้เป็น signed และ unsigned อีกที เป็น int, short int และ long intในทางกลับกัน ใน derived data types Array ใช้เก็บข้อมูลชนิดเดียวกัน อาจเป็น character, integer, float หรือแม้แต่ user-defined data type
5ประสิทธิภาพในกรณี fundamental data type มีเพียงประเภทและลักษณะข้อมูลที่เกี่ยวข้อง จึงไม่มีปัญหาเรื่อง time complexity เนื่องจากเราจัดการกับ concrete implementation ของภาษาในทางกลับกัน time complexity เข้ามามีบทบาทใน derived data types เนื่องจากเกี่ยวข้องกับการจัดการและการประมวลผลตรรกะกับข้อมูลที่จัดเก็บ