Skip to main content

C++ with OOP : CONSTRUCTORS & DESTRUCTORS


Constructors and destructors are essential components of object-oriented programming (OOP) in C++. Constructors are special member functions that are automatically called when an object of a class is created, while destructors are called when an object goes out of scope or is explicitly deleted. Let's discuss each of them in detail:

Constructors:

Constructors are used to initialize objects of a class. They have the same name as the class and are invoked automatically when an object of the class is created. Constructors can have parameters, which allow for initialization of object data members during object creation.

Default Constructor:

A default constructor is a constructor that takes no arguments.

class MyClass {
public:
    // Default constructor
    MyClass() {
        // Initialization code
    }
};

 

Parameterized Constructor:

A parameterized constructor is a constructor with parameters, used to initialize data members with specific values during object creation.

class MyClass {
private:
    int value;
public:
    // Parameterized constructor
    MyClass(int v) {
        value = v;
    }
};

Copy Constructor:

A copy constructor is a constructor which creates an object by initializing it with an object of the same class.

class MyClass {
private:
    int value;
public:
    // Copy constructor
    MyClass(const MyClass& other) {
        value = other.value;
    }
};

Destructors:

Destructors are special member functions that are called automatically when an object goes out of scope or is explicitly deleted using the delete operator. Destructors are typically used to release resources acquired by the object during its lifetime, such as memory allocated dynamically.

class MyClass {
public:
    // Constructor
    MyClass() {
        // Initialization code
    }

    // Destructor
    ~MyClass() {
        // Clean-up code
    }
};

Destructors have the same name as the class prefixed with a tilde (~). They do not take any parameters and do not return any value.

Example:

#include <iostream>

class Rectangle {
private:
    int width;
    int height;

public:
    // Parameterized constructor
    Rectangle(int w, int h) : width(w), height(h) {
        std::cout << "Constructor invoked. Width: " << width << ",
Height: " << height << std::endl;
    }

    // Destructor
    ~Rectangle() {
        std::cout << "Destructor invoked. Width: " << width << ",
Height: " << height << std::endl;
    }
};

int main() {
    Rectangle rect1(5, 10); // Constructor invoked
    {
        Rectangle rect2(3, 6); // Constructor invoked
    } // Destructor invoked for rect2
    Rectangle rect3(7, 14); // Constructor invoked
    return 0;
} // Destructor invoked for rect1 and rect3


In this example, you can see how constructors are invoked when objects of the Rectangle class are created and how destructors are invoked when these objects go out of scope.

Comments

Popular posts from this blog

Installation Steps

Download the Installer: Visit the website of the application you want to install and locate the download link for the Windows version. Usually, this will be an executable file (.exe) or a compressed file (.zip) containing the installer. Run the Installer: Once the installer file is downloaded, locate it in your downloads folder or wherever you saved it. Double-click on the installer file to run it. If it's a compressed file, extract its contents first and then run the installer. User Account Control (UAC) Prompt: Windows might display a User Account Control prompt asking for permission to make changes to your device. Click "Yes" to proceed with the installation. Setup Wizard: Most installers launch a setup wizard that guides you through the installation process. Follow the on-screen instructions which may involve accepting the license agreement, choosing the installation directory, and selecting any additional options or components you want to install. Installation Pr...

Spawning Processes of Linux OS

In Linux, spawning a process refers to the act of creating a new program execution instance. This essentially means creating a new child process from an existing parent process. Spawning allows for multitasking and running multiple programs concurrently on your system. Here's a breakdown of the mechanics: The core concept: Parent process:  The existing process that initiates the spawning. Child process:  The newly created process that inherits resources like memory and open files from the parent, but has its own execution path. The tools for spawning: fork() system call:  Creates a copy of the parent process, forming the basis for the child process. exec() system call:  Replaces the current process image with a new program, essentially loading and executing the child program within the child process. The two-step approach: fork():  Creates a near-identical copy of the parent process, including memory and file descriptors. This essentially duplicates the parent p...

Private, Protected and Public Members

  In C++ Object-Oriented Programming (OOP), access specifiers control how members (data and functions) of a class can be accessed from different parts of your program. These are crucial for understanding data encapsulation and promoting secure object-oriented design. Access Specifiers: Public:  Members are accessible from anywhere in your program, including outside the class, its subclasses, and friend functions. Use them cautiously to avoid exposing internal implementation details unnecessarily. Private:  Members are accessible only within the class and its friend functions. This promotes data encapsulation and protects data integrity by restricting direct access from outside. Protected:  Members are accessible within the class, its subclasses, and their friend functions. Useful for inheritance scenarios where subclasses need controlled access to base class members. Benefits of Each: Public:  Provides direct access and ...