A class in C++ is a user-defined data type that allows you to group variables (data members) and functions (member functions) together into a single unit. It is the foundation of Object-Oriented Programming (OOP).
1️⃣ Why Use Classes?
✅ Encapsulation – Groups related data and functions together.
✅ Reusability – Can be used to create multiple objects with the same properties.
✅ Modularity – Helps organize code efficiently.
✅ Abstraction – Hides unnecessary details from the user.
2️⃣ Defining a Class in C++
Syntax:
class ClassName {
private:
// Private data members (hidden from outside)
public:
// Public member functions (accessible outside)
};
3️⃣ Example: Creating a Class and Object
#include <iostream>
using namespace std;
class Car {
public:
string brand;
int year;
void displayInfo() {
cout << "Brand: " << brand << ", Year: " << year << endl;
}
};
int main() {
Car car1; // Creating an object
car1.brand = "Toyota";
car1.year = 2022;
car1.displayInfo(); // Calling a function
return 0;
}
Output:
Brand: Toyota, Year: 2022
Explanation:
Car
is a class with two variables (brand
andyear
) and a function (displayInfo()
).car1
is an object of classCar
.
4️⃣ Access Specifiers in Classes
C++ has three access specifiers:
Access Specifier | Description |
---|---|
public |
Accessible from anywhere. |
private |
Accessible only within the class. |
protected |
Similar to private , but accessible in derived (child) classes. |
class Example {
private:
int secretNumber; // Cannot be accessed outside
public:
int number; // Can be accessed outside
};
5️⃣ Using Private Members in a Class
To access private variables, we use getter and setter methods.
#include <iostream>
using namespace std;
class BankAccount {
private:
double balance;
public:
void setBalance(double b) {
if (b >= 0)
balance = b;
}
double getBalance() {
return balance;
}
};
int main() {
BankAccount account;
account.setBalance(1000); // Setting private data
cout << "Balance: $" << account.getBalance() << endl;
return 0;
}
Output:
Balance: $1000
- The
balance
variable is private, so we cannot access it directly. setBalance()
andgetBalance()
allow controlled access tobalance
.
6️⃣ Constructor in a Class
A constructor is a special function that is automatically called when an object is created.
#include <iostream>
using namespace std;
class Student {
public:
string name;
int age;
// Constructor
Student(string n, int a) {
name = n;
age = a;
}
void display() {
cout << "Name: " << name << ", Age: " << age << endl;
}
};
int main() {
Student s1("John", 21);
s1.display();
return 0;
}
Output:
Name: John, Age: 21
7️⃣ Destructor in a Class
A destructor is a special function that is automatically called when an object is destroyed.
class Example {
public:
Example() {
cout << "Constructor Called!" << endl;
}
~Example() {
cout << "Destructor Called!" << endl;
}
};
int main() {
Example obj;
return 0;
}
Output:
Constructor Called!
Destructor Called!
- The destructor
~Example()
is called automatically whenobj
goes out of scope.
8️⃣ Example: Real-World Class - Employee System
#include <iostream>
using namespace std;
class Employee {
private:
int empID;
double salary;
public:
Employee(int id, double sal) {
empID = id;
salary = sal;
}
void showDetails() {
cout << "Employee ID: " << empID << ", Salary: $" << salary << endl;
}
};
int main() {
Employee e1(101, 50000);
Employee e2(102, 60000);
e1.showDetails();
e2.showDetails();
return 0;
}
Output:
Employee ID: 101, Salary: $50000
Employee ID: 102, Salary: $60000
9️⃣ Summary
✅ Classes help organize code by grouping data and functions together.
✅ Access specifiers (private
, public
, protected
) control visibility.
✅ Encapsulation hides data from direct access, improving security.
✅ Constructors and destructors help in automatic initialization and cleanup.
Would you like to learn inheritance (how classes can be extended) next? 🚀
0 Comments