मुख्य कंटेंट तक स्किप करें

Constructors and Destructors in OOP

Ayesha
EditReport

Constructors and Destructors

Constructors and destructors are special member functions in object-oriented programming (OOP) that are automatically called when an object is created or destroyed, respectively. They are essential for initializing and cleaning up resources used by objects.


Video Explanation

1. What is a Constructor?

A constructor is a special function that initializes an object when it is created. It has the same name as the class and does not have a return type. Constructors can take parameters to initialize object attributes.

Types of Constructors

  • Default Constructor: A constructor that does not take any parameters.
  • Parameterized Constructor: A constructor that takes parameters to set initial values for the object.

Example of Constructors

C++ Code
#include <iostream>
using namespace std;

class Rectangle {
private:
int width, height;

public:
// Default Constructor
Rectangle() {
width = 0;
height = 0;
}

// Parameterized Constructor
Rectangle(int w, int h) {
width = w;
height = h;
}

void display() {
cout << "Width: " << width << ", Height: " << height << endl;
}
};

int main() {
Rectangle rect1; // Default constructor
Rectangle rect2(10, 5); // Parameterized constructor

rect1.display();
rect2.display();
return 0;
}
Java Code
class Rectangle {
private int width, height;

// Default Constructor
Rectangle() {
width = 0;
height = 0;
}

// Parameterized Constructor
Rectangle(int w, int h) {
width = w;
height = h;
}

void display() {
System.out.println("Width: " + width + ", Height: " + height);
}
}

public class Main {
public static void main(String[] args) {
Rectangle rect1 = new Rectangle(); // Default constructor
Rectangle rect2 = new Rectangle(10, 5); // Parameterized constructor

rect1.display();
rect2.display();
}
}

2. What is a Destructor?

A destructor is a special function that is called when an object is destroyed. It has the same name as the class but is preceded by a tilde (~) in C++. Destructors are used to release resources allocated to the object, such as memory or file handles.

Example of Destructors

C++ Code
#include <iostream>
using namespace std;

class Rectangle {
private:
int width, height;

public:
Rectangle(int w, int h) : width(w), height(h) {
cout << "Constructor called!" << endl;
}

~Rectangle() {
cout << "Destructor called!" << endl;
}

void display() {
cout << "Width: " << width << ", Height: " << height << endl;
}
};

int main() {
Rectangle rect(10, 5);
rect.display();
return 0; // Destructor is called automatically here
}
Java Code
class Rectangle {
private int width, height;

Rectangle(int w, int h) {
width = w;
height = h;
System.out.println("Constructor called!");
}

// Finalize method acts as a destructor in Java
protected void finalize() {
System.out.println("Destructor called!");
}

void display() {
System.out.println("Width: " + width + ", Height: " + height);
}
}

public class Main {
public static void main(String[] args) {
Rectangle rect = new Rectangle(10, 5);
rect.display();
rect = null; // Request garbage collection
System.gc(); // Calling garbage collector
}
}

3. Importance of Constructors and Destructors

  • Resource Management: Constructors are used to allocate resources, while destructors are used to release them. This ensures that resources are properly managed and prevents memory leaks.
  • Initialization: Constructors allow for setting initial values for object attributes, providing a clear and consistent way to create objects.

Telemetry Integration

Completed working through this block? Sync progress to workspace.