Classes and Objects in C++


Classes and objects are the fundamental building blocks of Object-Oriented Programming (OOP) in C++. A class defines a blueprint for objects, which are instances of the class. This allows developers to model real-world entities and their behaviors in code.

What is a Class?

A class is a user-defined data type that contains variables (data members) and functions (methods). It defines the structure and behavior of objects.

Example:

    #include <iostream>

    class Car {
    public:
        std::string brand;
        int speed;

        void display() {
            std::cout << "Brand: " << brand << ", Speed: " << speed << " km/h" << std::endl;
        }
    };
        

What is an Object?

An object is an instance of a class. It is created from a class and can use the data members and methods defined in the class.

Example:

    int main() {
        Car car1; // Create an object of the Car class
        car1.brand = "Toyota";
        car1.speed = 120;

        car1.display(); // Call the method

        return 0;
    }
        

Output:

    Brand: Toyota, Speed: 120 km/h
        

Access Specifiers

Access specifiers determine the visibility of class members. C++ provides three access specifiers:

  • Public: Members are accessible from anywhere.
  • Private: Members are accessible only within the class.
  • Protected: Members are accessible within the class and by derived classes.

Example:

    #include <iostream>

    class Car {
    private:
        std::string brand;
        int speed;

    public:
        void setDetails(const std::string &b, int s) {
            brand = b;
            speed = s;
        }

        void display() {
            std::cout << "Brand: " << brand << ", Speed: " << speed << " km/h" << std::endl;
        }
    };

    int main() {
        Car car1;
        car1.setDetails("Ford", 150);
        car1.display();

        return 0;
    }
        

Constructors

Constructors are special member functions that are automatically called when an object is created. They initialize the object's data members.

Example:

    #include <iostream>

    class Car {
    public:
        std::string brand;
        int speed;

        // Constructor
        Car(const std::string &b, int s) {
            brand = b;
            speed = s;
        }

        void display() {
            std::cout << "Brand: " << brand << ", Speed: " << speed << " km/h" << std::endl;
        }
    };

    int main() {
        Car car1("BMW", 200); // Constructor is called
        car1.display();

        return 0;
    }
        

Destructors

Destructors are special member functions that are automatically called when an object is destroyed. They release resources or perform cleanup.

Example:

    #include <iostream>

    class Car {
    public:
        std::string brand;

        Car(const std::string &b) {
            brand = b;
            std::cout << "Car " << brand << " created." << std::endl;
        }

        ~Car() {
            std::cout << "Car " << brand << " destroyed." << std::endl;
        }
    };

    int main() {
        Car car1("Audi");
        return 0;
    }
        

Output:

    Car Audi created.
    Car Audi destroyed.
        

Classes and objects in C++ provide a structured way to organize and reuse code, enabling developers to create robust and modular applications.





Advertisement