ชั้นเรียน คืออะไร? วัตถุ คืออะไร? สำหรับการเรียนรู้ภาษา C++ เชิงวัตถุ ความเข้าใจในคลาสและออบเจ็กต์เป็นรากฐานหลักในการเรียนรู้ภาษาทั้งหมด ความเข้าใจที่นิยมก็คือ จริงๆ แล้วคลาสนั้นเป็นโมเดล เป็นประเภทตัวแปร และอ็อบเจ็กต์เป็นตัวแปรเฉพาะที่กำหนดโดยประเภทนี้ เช่นเดียวกับ int a ในประโยคนี้ int สอดคล้องกับคลาส และ a สอดคล้องกับอ็อบเจ็กต์ สิ่งนี้ควรเป็นเรื่องง่ายสำหรับทุกคนที่จะเข้าใจ แต่ควรสังเกตว่า int เป็น คลาส C++ ในตัว ไม่ใช่คลาสจริง
ดังนั้นโดยสรุป: คลาสคือสิ่งที่เป็นนามธรรมและลักษณะทั่วไปของวัตถุ และวัตถุคือความเป็นรูปธรรมและตัวอย่างของคลาส โปรดเข้าใจประโยคนี้ด้วย
แล้วคลาสใน C++ มีหน้าตาเป็นอย่างไร? พูดง่ายๆ ก็คือ คลาสใน C++ จริงๆ แล้วเป็นโครงสร้างที่มีฟังก์ชัน! เนื่องจากสมาชิกในคลาส C++ ไม่เพียงแต่สามารถมีตัวแปรพื้นฐานเช่นโครงสร้างในภาษา C เท่านั้น แต่ยังสามารถมีฟังก์ชันได้อีกด้วย ตัวแรกเรียกว่า ตัวแปรสมาชิก และตัวหลังเรียกว่า เมธอดสมาชิก
คำหลักถูกกำหนดโดยใช้คลาส คลาส ตัวอย่างเช่น ต่อไปนี้กำหนดคลาส C++ คลาสนักเรียน:
classStudent {public:intnum;charname[100];intscore;intprint(){cout<<num<<<<name<<<<score;return0;}};
อย่างที่คุณเห็น แบบฟอร์มนี้คล้ายกับโครงสร้างภาษา C มาก สมาชิกจะมีตัวแปรและฟังก์ชันต่างๆ ต่อไป เราจะคุ้นเคยกับการเรียกแอตทริบิวต์และเมธอดเหล่านี้ เป็นมูลค่าการกล่าวขวัญว่าทุกคนควรใส่ใจกับความจริงที่ว่ามีสิ่งสาธารณะในชั้นเรียนซึ่งเป็นคุณลักษณะการควบคุมการเข้าถึงที่ควบคุมสิทธิ์การเข้าถึงของสมาชิก นอกเหนือจาก public แล้ว ยังมีสามประเภท: ส่วนตัว และ ได้รับการคุ้มครอง ในหมู่พวกเขา ส่วนตัว หมายถึง ส่วนตัว สมาชิกในชั้นเรียนสามารถเข้าถึงได้เท่านั้นและไม่สามารถเข้าถึงได้โดยโลกภายนอก เป็นการอนุญาตที่ปิดสนิทที่สุด นอกเหนือจากการเข้าถึงแบบสาธารณะเล็กน้อย โดยสมาชิกของตัวเองภายในคลาส คลาสย่อยยังสามารถเข้าถึงได้ (เราจะขยายแนวคิดของคลาสย่อยโดยละเอียดในภายหลัง) และสมาชิกที่ประกาศต่อสาธารณะสามารถเข้าถึงได้โดยวัตถุใด ๆ ของคลาสและเป็นข้อมูลสาธารณะโดยสมบูรณ์ ที่นี่คุณสามารถเข้าใจมัน จากนั้นคุณจะได้สัมผัสมันในขณะที่ทดลองโค้ด ควรจำไว้ว่ามี อัฒภาค อยู่หลังคำจำกัดความของชั้นเรียน โปรดระวังอย่าทิ้ง!
โอเค หลังจากที่เข้าใจรูปลักษณ์พื้นฐานของคลาสแล้ว เรามาแสดงวิธีการเขียนแบบอื่นให้คุณดู ในลักษณะที่เราเพิ่งดูไป ฟังก์ชันสมาชิกจะถูกเขียนในคลาส ถ้ามีฟังก์ชันสมาชิกจำนวนมากในคลาส ให้อ่านว่ามันจะเป็น ยุ่งมาก ดังนั้น C++ จึงสนับสนุนวิธีเขียนอีกวิธีหนึ่ง นั่นคือ ฟังก์ชันสมาชิกจะประกาศฟังก์ชันต้นแบบภายในคลาสเท่านั้นและกำหนดเนื้อหาของฟังก์ชันภายนอกคลาส ด้วยวิธีนี้ คุณจะเห็นรายการฟังก์ชันของสมาชิกทั้งหมด คลาสเหมือนกับไดเร็กทอรี มีความชัดเจนและมีข้อกำหนดมากมาย
วิธีการประกาศฟังก์ชันต้นแบบในคลาสจะเหมือนกับการประกาศฟังก์ชันต้นแบบของภาษา C ทั่วไป วิธีการกำหนดฟังก์ชันนอกคลาสจำเป็นต้องเพิ่ม :: ตัวระบุขอบเขต ให้กับชื่อคลาส ตอนนี้เป็นตัวอย่าง รหัสที่กำหนดนอกคลาสมีดังนี้:
classStudent{public:intnum;//ชื่อหมายเลขนักเรียน[100];//name intscore;//score intprint();//ประกาศฟังก์ชันการพิมพ์ภายในคลาส}; intStudent::print()//define เสร็จสิ้นภายนอก ฟังก์ชั่นการพิมพ์คลาส {cout<<num<<<<name<<<<score;return0;}
โปรดทราบว่าหลังจากประกาศฟังก์ชันการพิมพ์ในคลาสแล้ว เราจะกำหนดฟังก์ชันนั้นให้สมบูรณ์ในภายหลัง ในส่วนหัวของฟังก์ชัน ระหว่างค่าที่ส่งคืนและชื่อฟังก์ชัน ชื่อคลาสบวก :: จะถูกใช้เพื่อระบุว่าฟังก์ชันนั้นเป็นของคลาสใด
โปรดทำความคุ้นเคยกับการใช้งานทั้งสองข้างต้น จากนั้นใช้คอมพิวเตอร์เพื่อทำความเข้าใจด้วยตัวเอง และเลือกตามสถานการณ์