Complete OOP Concepts in CPP Full
Complete OOP Concepts in CPP Full
- **Encapsulation**: Wrapping data and functions into a single unit (class). Prevents direct access to
data.
- **Abstraction**: Hiding complex implementation details and exposing only necessary
functionalities.
- **Inheritance**: Allows a class to derive properties and behavior from another class.
- **Polymorphism**: The ability to use a function in different ways (overloading, overriding).
**Example:**
```cpp
class Employee {
private:
int salary;
public:
void setSalary(int s) { salary = s; }
int getSalary() { return salary; }
};
```
**Example:**
```cpp
class Car {
public:
string brand;
void showBrand() { cout << brand; }
};
Car myCar; // Object
```
3. Encapsulation in C++
**Example:**
```cpp
class Account {
private:
double balance;
public:
void deposit(double amount) { balance += amount; }
double getBalance() { return balance; }
};
```
4. Constructor vs Destructor
**Example:**
```cpp
class Demo {
public:
Demo() { cout << "Constructor called"; }
~Demo() { cout << "Destructor called"; }
};
```
**Example:**
```cpp
class Test {
private: int x;
public: int y;
protected: int z;
};
```
Data hiding prevents direct access to class members, enforcing security and abstraction.
**Example:**
```cpp
class BankAccount {
private:
double balance;
public:
void deposit(double amount) { balance += amount; }
};
```
**Example:**
```cpp
class Rectangle {
public:
Rectangle() {}
Rectangle(int w, int h) {}
};
```
8. Types of Constructors
**Example:**
```cpp
class Demo {
public:
Demo(int a) {}
Demo(const Demo &obj) {}
};
```
**Example:**
```cpp
class Counter {
public:
static int count;
};
```
**Example:**
```cpp
class A {
private:
int x;
friend void show(A obj);
};
```
**Example:**
```cpp
class A {};
class B : public A {};
```
**Example:**
```cpp
class A {};
class B {};
class C : public A, public B {};
```
**Example:**
```cpp
class A {};
class B : virtual public A {};
```
| Type | Description |
|------|------------|
| Public | Keeps visibility same |
| Private | Makes all inherited members private |
| Protected | Makes public and protected members protected |
**Example:**
```cpp
class A { virtual void show(); };
class B : public A { void show() override; };
```