←Back to Subject
Notes
Notes
Study material and explanations
Diagrams
Diagrams
Visualize concepts easily
Mnemonics
Mnemonics
Tricks to remember faster
One Night Prep
One Night Prep
Short and focused revision
Revision
Revision
Quick summary and key points
Important Questions
Important Questions
Practice most relevant questions
Notes

Classes & Objects in C++: Fundamentals & First OOP Program

Study material and explanations for Unit 3

Classes & Objects in C++: Fundamentals & First OOP Program

1. What is a Class and What is an Object? (In Simple Words)

In traditional C programming, data and functions were kept separate. Anyone could change global variables by mistake, which caused bugs.

Object-Oriented Programming (OOP) fixes this by wrapping data (variables) and the functions that work on that data together into one secure package.

The Class vs. Object Relationship
Class (The Blueprint)
A user-defined data type that acts like an architectural map or drawing. It defines what variables and functions the object will have. Takes 0 bytes of RAM on its own.
Object (The Real Entity)
A real, physical instance of the class created at runtime. When you create an object, the system allocates actual RAM memory for it.

Real-Life Examples to Remember for Exams:

  1. Architect Blueprint vs. House: An architect draws a 3BHK house plan on paper — that is a Class (takes 0 land). The actual house built with bricks and cement in your city is an Object (takes real land!). You can build 50 identical houses from 1 blueprint.
  2. Car Blueprint vs. Car: The engineering design of a Maruti Swift is the Class. The actual car standing in your college parking lot is an Object.

2. Syntax of a Class in C++

To create a class, use the class keyword followed by the class name. The body is wrapped inside curly braces {} and must end with a semicolon ;.

class Student {
    private:
        // Variables (Data Members)
        // Hidden from outside world (Data Hiding)
        int rollNo;

    public:
        // Functions (Member Functions / Methods)
        // Can be called from main() to use the object
        void input();
        void display();
}; // Note the mandatory semicolon!

3. Access Specifiers: private vs. public vs. protected

Access specifiers decide who is allowed to view or use the members of a class:

Access Specifier Accessible Inside Same Class? Accessible from Outside (main())? Accessible in Child / Derived Class?
private (Default) Yes No (Compiler error!) No
public Yes Yes (Using dot operator .) Yes
protected Yes No Yes (Inherited by child class)

Exam Tip: In C++, if you don’t write anything, all members are private by default. (In a C++ struct, members are public by default).


4. Your First Complete OOP Program in C++

Here is a complete, working student management program:

#include <iostream>
#include <string>
using namespace std;

// 1. Defining the Class Blueprint
class Student {
    private:
        // Private Data: Protected from outside tampering
        int rollNumber;
        string name;
        float marks;

    public:
        // Public Member Function 1: Take input from user
        void getDetails() {
            cout << "Enter Roll Number: ";
            cin >> rollNumber;
            cin.ignore(); // Clears enter key from input buffer
            cout << "Enter Student Name: ";
            getline(cin, name);
            cout << "Enter Marks: ";
            cin >> marks;
        }

        // Public Member Function 2: Display student report
        void displayDetails() {
            cout << "\n--- Student Report Card ---" << endl;
            cout << "Roll No : " << rollNumber << endl;
            cout << "Name    : " << name << endl;
            cout << "Marks   : " << marks << endl;
            cout << "Result  : " << (marks >= 40 ? "PASSED" : "FAILED") << endl;
        }
}; // End of Class with semicolon

int main() {
    // 2. Creating two Objects (Instances) of class Student
    Student s1;
    Student s2;

    cout << "=== Entering Data for Student 1 ===" << endl;
    s1.getDetails(); // Calling public function using dot (.) operator

    cout << "\n=== Entering Data for Student 2 ===" << endl;
    s2.getDetails();

    // Displaying data for both students
    s1.displayDetails();
    s2.displayDetails();

    // The line below gives a COMPILER ERROR because rollNumber is private!
    // s1.rollNumber = 101; 

    return 0;
}

5. The Dot Operator (.)

To call a public function or access a public variable of an object inside main(), we use the Dot Operator (.):

objectName.functionName();

For example: s1.getDetails(); calls getDetails() specifically for object s1.


DAVV Exam Preparation Tips

Frequently Asked 5-Mark Questions:

  1. Differentiate between a Class and an Object with an example.
    Model Answer:
    • Class: A user-defined data type and blueprint that defines properties and behaviors. Takes 0 bytes of RAM.
    • Object: A physical instance of a class that occupies memory in RAM.
    • Give the Blueprint vs. House or Car design vs. Real car example.
  2. What are access specifiers in C++? What is the default access specifier?
    Model Answer:
    • Explain private, public, and protected.
    • Mention that in C++ classes, members are private by default.

Frequently Asked 10-Mark Questions:

  1. Explain the fundamental concepts of OOP: Encapsulation, Data Hiding, and Abstraction. Write a complete C++ program to create a BankAccount class with account number, customer name, and balance, with deposit, withdraw, and check-balance methods.
    Model Answer:
    • Define Encapsulation (wrapping data and methods into a single unit).
    • Define Data Hiding (making balance private so outside code cannot tamper with money directly).
    • Write out the complete C++ class BankAccount with deposit(), withdraw() (check if amount > balance), and checkBalance().
    • Create objects in main() and demonstrate successful transactions.