วิธีการยกตัวอย่างคลาส

สารบัญ:

วิธีการยกตัวอย่างคลาส
วิธีการยกตัวอย่างคลาส

วีดีโอ: วิธีการยกตัวอย่างคลาส

วีดีโอ: วิธีการยกตัวอย่างคลาส
วีดีโอ: โปรแกรมหวย richest :วิธีตั้งยอดรับ,อัตราการจ่ายรางวัล,ผู้ส่ง 2024, พฤศจิกายน
Anonim

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

วิธีการยกตัวอย่างคลาส
วิธีการยกตัวอย่างคลาส

มันจำเป็น

คอมไพเลอร์ C ++

คำแนะนำ

ขั้นตอนที่ 1

สร้างอินสแตนซ์ของคลาสเป็นตัวแปรอัตโนมัติในขอบเขตโลคัลที่กำหนดโดยฟังก์ชัน เมธอดของคลาส หรือบล็อกคำสั่ง ใช้คำจำกัดความที่เปิดเผยหรือจำเป็นของคลาสอ็อบเจ็กต์ ณ ตำแหน่งที่เลือกในโปรแกรมของคุณ หากจำเป็น ให้ทำการเรียกตัวสร้างใดๆ ด้วยพารามิเตอร์อย่างชัดเจน สร้างวัตถุโดยใช้รหัสที่คล้ายกับต่อไปนี้: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // สร้างวัตถุโดยใช้ตัวสร้างเริ่มต้น COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // การสร้างวัตถุโดยใช้ตัวสร้างพร้อมพารามิเตอร์} หน่วยความจำสำหรับวัตถุของคลาสที่สร้างขึ้นในลักษณะเดียวกัน เช่นเดียวกับตัวแปรอัตโนมัติอื่น ๆ จะถูกจัดสรรบนสแต็ก ดังนั้น เมื่อคุณออกจากขอบเขตและลบสแต็กเฟรม วัตถุจะถูกทำลาย (ด้วยการเรียกตัวทำลายล้าง)

ขั้นตอนที่ 2

สร้างอินสแตนซ์ของคลาสในฮีปโดยใช้ตัวดำเนินการใหม่ กำหนดตัวแปรของตัวชี้ประเภทไปยังวัตถุของคลาสที่จะสร้างอินสแตนซ์ ให้ค่าที่เป็นผลจากการประเมินตัวดำเนินการใหม่ เรียกตัวสร้างที่เหมาะสม ใช้ข้อมูลโค้ดที่คล้ายกับต่อไปนี้: CSomeClass * poSomeObject; // นิยามของตัวชี้ไปยังวัตถุของคลาส CSomeClasspoSomeObject = CSomeClass ใหม่; // สร้างวัตถุของคลาส CSomeClass * poSomeObject_2 = CSomeClass ใหม่ (111, "3V"); // การสร้างด้วยการเรียกคอนสตรัคเตอร์ด้วยพารามิเตอร์ เมื่อสร้างอ็อบเจ็กต์ด้วยวิธีนี้ กลไกการจัดสรรหน่วยความจำที่กำหนดโดยโอเปอเรเตอร์ใหม่จะถูกใช้ (ถ้าไม่ถูกแทนที่และไม่ได้ตั้งค่าฟังก์ชันการจัดสรรของตัวเอง) ดังนั้นที่อยู่ของ วัตถุใหม่ไม่ทราบล่วงหน้า ออบเจ็กต์ทั้งหมดที่สร้างขึ้นในลักษณะนี้จะต้องลบออกอย่างชัดเจนโดยใช้ตัวดำเนินการลบ

ขั้นตอนที่ 3

สร้างอินสแตนซ์ของคลาสโดยใช้โอเปอเรเตอร์ใหม่ในกลุ่มหน่วยความจำที่จัดสรรเอง ใช้รหัสที่คล้ายกับต่อไปนี้: void * p0 = malloc (sizeof (CSomeClass)); // การจัดสรรหน่วยความจำเป็นโมฆะ * p1 = malloc (sizeof (CSomeClass)); // การจัดสรรหน่วยความจำใหม่ (p0) CSomeClass; // เริ่มต้นวัตถุบนหน่วยความจำที่จัดสรร (ตัวสร้างเริ่มต้น) ใหม่ (p1) CSomeClass (111, "abc"); // การเริ่มต้นวัตถุ (ตัวสร้างพร้อมพารามิเตอร์) ก่อนที่จะทำลายวัตถุที่สร้างโดยวิธีนี้คุณควรเรียกตัวทำลายล้างอย่างชัดเจน: ((CSomeClass *) p0) -> ~ (); การสร้างวัตถุในลักษณะนี้ส่วนใหญ่จะใช้ในคลาสคอนเทนเนอร์เทมเพลตของ ห้องสมุดต่างๆ (เช่น STL)