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

ตัวทำลายล้างใน C++


Destructors ใน C ++ เป็นฟังก์ชันของสมาชิกในคลาสที่ลบวัตถุ โดยจะเรียกเมื่อคลาสอ็อบเจ็กต์หมดขอบเขต เช่น เมื่อฟังก์ชันสิ้นสุด โปรแกรมสิ้นสุด เรียกใช้ตัวแปร delete เป็นต้น

Destructors นั้นแตกต่างจากฟังก์ชั่นของสมาชิกทั่วไปเนื่องจากไม่มีการโต้แย้งใด ๆ และไม่ส่งคืนสิ่งใด นอกจากนี้ destructors ยังมีชื่อเดียวกับคลาสและชื่อของพวกเขานำหน้าด้วย tilde(~)

โปรแกรมที่แสดงตัวทำลายล้างในภาษา C++ มีดังต่อไปนี้

ตัวอย่าง

#include<iostream>
using namespace std;
class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      cout<<"Inside Constructor"<<endl;
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
   ~Demo() {
      cout<<"Inside Destructor";
   }
};
int main() {
   Demo obj1(10, 20);
   obj1.display();
   return 0;
}

ผลลัพธ์

Inside Constructor
num1 = 10
num2 = 20
Inside Destructor

ในโปรแกรมข้างต้น คลาส Demo มีคอนสตรัคเตอร์ที่ตั้งค่าเริ่มต้น num1 และ num2 ด้วยค่าที่จัดเตรียมโดย n1 และ n2 นอกจากนี้ยังมีฟังก์ชัน display() ที่พิมพ์ค่าของ num1 และ num2 นอกจากนี้ยังมี destructor ใน Demo ที่ถูกเรียกเมื่อขอบเขตของคลาสอ็อบเจ็กต์สิ้นสุดลง ข้อมูลโค้ดสำหรับสิ่งนี้มีดังต่อไปนี้

class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      cout<<"Inside Constructor"<<endl;
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
   ~Demo() {
      cout<<"Inside Destructor";
   }
};

ฟังก์ชัน main() มีการกำหนดอ็อบเจ็กต์สำหรับอ็อบเจ็กต์ประเภท Demo จากนั้นฟังก์ชัน display() จะถูกเรียก ดังแสดงด้านล่าง

Demo obj1(10, 20);
obj1.display();