Classes and Objects

Classes and Objects

Let's dive into a foundational concept in Object-Oriented Programming (OOP): Classes and Objects. If you have already explored OOP concepts in other programming languages or previous units, this might serve as a good reminder. If not, no worries, we'll start from the basics.

Classes and objects are the building blocks of OOP. A class acts as a blueprint for creating objects, which are instances of the class. Understanding these basics is essential before moving on to more advanced OOP topics like inheritance, polymorphism, and encapsulation.

What You'll Learn

In this lesson, you'll learn how to define and use classes and objects in C++. We'll cover:

  1. Declaring and Defining Classes
  2. Creating Objects from Classes
  3. Using Constructors, including the Copy Constructor

Declaring and Defining Classes

In C++, a class is defined using the class keyword. Here's a simple example:

#include <iostream>
#include <string>

// Defining a class named Person
class Person {
public:
    // Constructor that initializes the object with a name and age
    Person(const std::string& name, int age) : name(name), age(age) {}

    // Copy constructor to create a copy of the object of the same type
    Person(const Person& other) : name(other.name), age(other.age) {}

    // Member function to display the object's data
    void display() const {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }

private:
    // Data members of the class (name and age)
    std::string name;
    int age;
};

In this snippet, we define a Person class with data members name and age and member functions, including a constructor and a copy constructor. We also have a display function to print the object's data.

Creating Objects from Classes

Once you have defined a class, you can create objects (instances of the class). Here’s how we can create and use objects of the Person class:

int main() {
    Person person("Alice", 30);  // Creating an object
    person.display();            // Displaying the object's data

    Person personCopy(person);   // Using the copy constructor
    personCopy.display();        // Displaying the copied object's data

    return 0;
}

Here, we create an object, person, with the name "Alice" and age 30, and another object, personCopy, which is a copy of the first object using the copy constructor. Both objects display their data using the display method.

Sign up

Join the 1M+ learners on CodeSignal

Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal