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

คำถามสัมภาษณ์ C ++ ตามคอนสตรัคเตอร์ / ตัวทำลาย


คำถามสัมภาษณ์ C++ เกี่ยวกับ Constructors

คอนสตรัคเตอร์คืออะไร

คอนสตรัคเตอร์ เป็นฟังก์ชันของคลาสที่มีชื่อเดียวกับคลาส ตัวสร้างถูกเรียกในขณะที่เริ่มต้นวัตถุ คอนสตรัคเตอร์มีสามประเภท -

  • ตัวสร้างเริ่มต้น
  • ตัวสร้างพารามิเตอร์
  • คัดลอกตัวสร้าง

ไวยากรณ์

class cl_name{
   cl_name(){
      //This is constructor..
   }
}

ตัวทำลายคืออะไร

ผู้ทำลาย เป็นวิธีการของคลาสที่มีชื่อเหมือนกับคลาสที่นำหน้าด้วย tild ~ สัญลักษณ์. มันถูกเรียกเมื่อสิ้นสุดโค้ดหรือเมื่อวัตถุถูกทำลายหรืออยู่นอกขอบเขต

ไวยากรณ์

class cl_name{
   ~ cl_name(){} //destructor
}

คอนสตรัคเตอร์มีประโยชน์อย่างไร

นวกรรมิกคือเมธอดที่มีชื่อเดียวกับคลาส และการใช้ตัวสร้างคือการเริ่มต้นวัตถุเมื่อถูกสร้างขึ้นโดยใช้ ใหม่ คำสำคัญ

เมื่อมีการสร้างอ็อบเจ็กต์ ตัวแปรจะถูกเริ่มต้นชิ้นส่วนของหน่วยความจำและค่าฐาน หากมี

ตัวทำลายมีประโยชน์อย่างไร

destructor คือเมธอดที่มีชื่อเดียวกับคลาสที่นำหน้าสัญลักษณ์ ~ การใช้ตัวทำลายล้างคือการจัดสรรคืนส่วนของหน่วยความจำที่โค้ดออกจากขอบเขตของวัตถุหรือถูกลบโดยใช้ ลบคำหลัก .

เมื่อวัตถุถูกลบ destructor จะถูกเรียกและจัดสรรคืนบล็อกหน่วยความจำทั้งหมดที่สร้างขึ้นเมื่อวัตถุถูกสร้างขึ้น

ลำดับของการดำเนินการคอนสตรัคเตอร์ใน C++ คืออะไร

คอนสตรัคเตอร์ถูกเรียกเมื่อวัตถุของคลาสถูกสร้างขึ้น ลำดับที่คอนสตรัคเตอร์ถูกเรียกใช้จะเหมือนกับลำดับชั้นของการสืบทอด ซึ่งหมายความว่าในขั้นแรก อ็อบเจกต์ของคลาสฐานถูกเรียกใช้ จากนั้นอ็อบเจ็กต์ของคลาสย่อยจะถูกเรียกใช้เป็นต้น

ลำดับของการดำเนินการ destructor ใน C++ คืออะไร

Destructor ถูกเรียกใช้ในลำดับย้อนกลับในฐานะ Constructor และถูกเรียกใช้เมื่อวัตถุของคลาสถูกลบ ลำดับในการเรียกตัวทำลายล้างนั้นตรงกันข้ามกับลำดับชั้นของมรดก ซึ่งหมายความว่าก่อนอื่นวัตถุของคลาสย่อยจะถูกทำลาย จากนั้นวัตถุของคลาสหลักจะถูกทำลายเป็นต้น

คอนสตรัคเตอร์เริ่มต้นถูกสร้างขึ้นแม้ว่าเราจะสร้างคอนสตรัคเตอร์อื่นหรือไม่

ตัวสร้างถูกสร้างขึ้นโดยค่าเริ่มต้นโดยคอมไพเลอร์หากโปรแกรมเมอร์ไม่ได้กำหนดตัวสร้างใด ๆ อย่างชัดเจน หากโปรแกรมเมอร์กำหนดคอนสตรัคเตอร์ คอมไพเลอร์ก็จะเก็บงานของมันไว้และไม่ได้กำหนดไว้แต่อย่างใด