คุณยังจำประโยคจากบทเรียนที่แล้วได้หรือไม่: "คลาสคือสิ่งที่เป็นนามธรรมและลักษณะทั่วไปของวัตถุ และวัตถุคือความเป็นรูปธรรมและเป็นตัวอย่างของชั้นเรียน" หลังจากเรียนรู้คำจำกัดความของคลาสแล้ว ขั้นตอนต่อไปคือ การสร้างและใช้อ็อบเจ็กต์ !
1. การสร้างวัตถุ:
คลาสคือโครงสร้างที่มีฟังก์ชัน เป็นชนิดข้อมูลที่กำหนดด้วยตนเอง ซึ่งเรียกว่าวัตถุ ของคลาสนี้ถูกกำหนดไว้แล้วยังสามารถกล่าวได้ว่าสร้างอินสแตนซ์ของวัตถุนั่นคือสิ่งที่มันหมายถึง!
การใช้อ็อบเจ็กต์เหมือนกับการใช้โครงสร้าง โดยส่วนใหญ่จะเข้าถึงสมาชิกภายใน และเข้าถึงได้ทั้งหมดโดยใช้ .
StudentA;A.num=101;strcpy(A.name,dotcpp);A.score=100;A.print();
ควรสังเกตว่าตัวแปรสมาชิกในคลาสที่นี่ทั้งหมดถูกประกาศเป็น ประเภทสาธารณะ หากพวกมันถูกประกาศเป็นประเภทส่วนตัว พวกมันจะถูกห้ามไม่ให้รายงานข้อผิดพลาดหากพวกมันถูกเข้าถึงโดยตรงผ่าน อ็อบเจ็กต์และตัวแปรในฟังก์ชันหลักเป็นหลัก เหตุผลก็คือตัวแปรประเภทส่วนตัวเป็นประเภทส่วนตัวและไม่อนุญาตให้เข้าถึงจากภายนอก
สำหรับตัวแปรส่วนตัวที่เราต้องการปกป้องแต่ต้องการควบคุม เรามักจะประกาศให้เป็นประเภทส่วนตัว จากนั้นจึงกำหนดวิธีการกำหนดพิเศษของประเภทสาธารณะในเวลาเดียวกัน เนื่องจากสมาชิกภายในสามารถเข้าถึงตัวแปรที่ประกาศแบบส่วนตัว เราจึงใช้สิ่งนี้ได้ วิธีการสาธารณะภายนอกเพื่อควบคุมสมาชิกส่วนตัวเหล่านี้โดยอ้อมเพื่อให้บรรลุผลของการห่อหุ้มและการป้องกันและวิธีการประเภทสาธารณะนี้เรียกอีกอย่างว่า อินเทอร์เฟซภายนอก ของคลาสนี้ โปรดเข้าใจประโยคนี้ด้วย!
2. ตัวชี้ไปที่วัตถุ:
เช่นเดียวกับตัวแปรทั่วไป วัตถุยังเป็นพื้นที่หน่วยความจำต่อเนื่อง ดังนั้นคุณสามารถสร้างตัวชี้ไปยังวัตถุ ซึ่งก็คือ ตัวชี้วัตถุ เพื่อจัดเก็บที่อยู่ของวัตถุได้
จากนั้นวิธีการสร้างจะคล้ายกับการใช้ตัวชี้ชนิดทั่วไป และวิธีการกำหนดจะเป็นดังนี้:
ชื่อคลาส * ชื่อตัวชี้;
ตัวอย่างเช่น กำหนด Student *p; กำหนดตัวชี้ p ของประเภท Clock ควรชัดเจนว่าวัตถุไม่ได้ถูกสร้างขึ้นที่นี่ และแน่นอนว่าตัวสร้างจะไม่ถูกเรียก ถัดไป คุณสามารถกำหนดที่อยู่ของวัตถุคลาสประเภทเดียวกันให้กับตัวชี้นี้ จากนั้นเข้าถึงสมาชิกในวัตถุผ่าน ->
รหัสมีดังนี้:
นักเรียน*p;StudentA;p=&A;p->พิมพ์();
ข้างต้นคือวิธีการใช้พอยน์เตอร์ของวัตถุ นอกเหนือจากการใช้พอยน์เตอร์เมื่อกำหนดค่าและเข้าถึงสมาชิกแล้ว ยังแนะนำให้ใช้พอยน์เตอร์เมื่อส่งพารามิเตอร์ด้วย เนื่องจากพวกมันส่งผ่านที่อยู่และไม่คัดลอกการกำหนดระหว่างอ็อบเจ็กต์ จึงช่วยลดโอเวอร์เฮดของหน่วยความจำ และปรับปรุงประสิทธิภาพ
3. การอ้างอิงวัตถุ:
การอ้างอิงเป็นประเภทใหม่ใน C ++ การอ้างอิงวัตถุเป็นนามแฝงสำหรับวัตถุคลาส โดยพื้นฐานแล้ว ที่อยู่ของวัตถุคลาสถูกกำหนดให้กับประเภทการอ้างอิง แล้วจะกำหนดการใช้งานได้อย่างไร? แสดงให้คุณเห็นด้านล่าง
StudentA;นักเรียน&Aq=A;
ดังที่แสดงในโค้ดด้านบน ให้กำหนดออบเจ็กต์ประเภท Student จากนั้นใช้ & เพื่อกำหนดประเภทการอ้างอิงประเภทนี้ และกำหนดออบเจ็กต์ A ให้กับ Aq เป็นค่าเริ่มต้น
สิ่งที่ควรทราบคือ:
1. เช่นเดียวกับพอยน์เตอร์ ทั้งคู่ต้องเป็นประเภทเดียวกันก่อนจึงจะสามารถอ้างอิงได้
2. เว้นแต่จะใช้ค่าที่ส่งคืนหรือพารามิเตอร์ที่เป็นทางการของฟังก์ชัน การอ้างอิงประเภทอื่นจะต้องเริ่มต้นพร้อมกัน!
3. ประเภทการอ้างอิงไม่ได้สร้างวัตถุใหม่ ดังนั้นตัวสร้างจะไม่ถูกเรียก
ดังนั้นเนื่องจากเป็นนามแฝงของคลาสอ็อบเจ็กต์ วิธีการใช้งานจึงเหมือนกับคลาสอ็อบเจ็กต์ โดยใช้วิธี alias.member ในการเข้าถึง เช่น:
StudentA;นักเรียน&Aq=A;Aq.print();
อย่างที่คุณเห็นเมื่อใช้ประเภทอ้างอิงสาระสำคัญยังคงเป็นที่อยู่ที่เก็บไว้ ดังนั้นไม่ว่าคำจำกัดความของพารามิเตอร์จะมีค่าใช้จ่ายหน่วยความจำไม่มากเกินไป แต่ก็มีข้อดีของพอยน์เตอร์ ใช้แบบเดียวกับคลาสอ็อบเจ็กต์ เมื่อสร้างอาร์กิวเมนต์ของฟังก์ชัน เพียงส่งผ่านอ็อบเจ็กต์อ้างอิงโดยตรงโดยไม่ต้องเพิ่มอักขระที่อยู่ ดังนั้นจึงดูใช้งานง่ายและสะดวกยิ่งขึ้น นี่คือข้อดีของประเภทการอ้างอิง