Links and resources for strengthening the concepts of Object Oriented Programming [Java and C++] To the point for Interview Preparation and sufficient for Academics.
Love Babbar CheatSheet : cheatsheet
Love Babbar Video : video
SNo | Topic | Link | Language |
---|---|---|---|
1 | Virtual Functions | view | C++ |
2 | Polymorphism | view | C++ |
SNo | Language | Link |
---|---|---|
1 | C++ | view |
2 | Java | view |
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | What is OOP ? | view | not done |
2 | How OOP is related to real world ? | view | not done |
3 | Why to study OOPs ? | view | not done |
4 | Limitations of OOPs | view | not done |
5 | When we say that "X" language is object oriented programming language, then what does we mean by that ? | homework | not done |
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | Difference between Structure and Class | view | not done |
2 | Similarities between Structure and Class | view | not done |
3 | When to use Structure over Class | homework | not done |
4 | Access Modifiers | view | not done |
5 | Member Function | view | not done |
6 | Constructor | view | not done |
7 | Destructor | view | not done |
There are 4 access modifiers in C++ :
- public
- private
- protected
- friend
- protected friend
- Inside Class Function --> inline keyword
- Outside Class Function --> scope resolution operator (::)
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | Default Constructor | - | not done |
2 | Parameterised Constructor | - | not done |
3 | Copy Constructor : Deep vs shallow copy | view | not done |
4 | Copy Constructor : copy ctor vs assignment | view | not done |
5 | Virtual Constructor | view | not done |
6 | Virtual Copy Constructor | view | not done |
7 | Constructor vs member functions | view | not done |
8 | Constructor Overloading | view | not done |
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | Private Destructor | view | not done |
2 | Virtual Destructor | view | not done |
3 | Pure Virtual Destructor | view | not done |
4 | Destructor vs member functions | view | not done |
5 | Multiple Destructors in one class ? | view | not done |
6 | When to write user defined Destructor ? | view | not done |
7 | Can a Destructor be virtual ? | view | not done |
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | difference btw Class and Object | view | not done |
2 | Real world Analogy btw Class and Object | view | not done |
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | static | view | not done |
2 | virtual | view | not done |
3 | abstract | view | not done |
4 | final | view | not done |
5 | explicit | view | not done |
6 | this | view | not done |
7 | new | view | not done |
8 | const | view | not done |
9 | super | view | not done |
- Polymorphism
- Inheritance
- Encapsulation
- Abstraction
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | What is Polymorphism ? | view | not done |
2 | Need of Polymorphism ? | view | not done |
3 | Function / Operator Overloading | view | not done |
4 | Function Overriding | view | not done |
5 | Virtual Function | view | not done |
6 | Virtual Class | view | not done |
7 | Derived Class | view | not done |
8 | Can Virtual Function be private ? | view | not done |
9 | Inline Virtual Function | view | not done |
10 | Abstract Class | view | not done |
11 | Pure Virtual Function | view | not done |
12 | Pure Virtual Destructor | view | not done |
- Function / Operator Overloading
- Function Overriding
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | Compile time Polymorphism | view | not done |
2 | Functions cannot be overloaded in C++ | view | not done |
3 | Operators that cannot be overloaded in C++ | view | not done |
Note : Function Overriding is also called run-time Polymorphism.
- Single
- Mutliple
- Hierarchical
- Multilevel
- Hybrid / Virtual
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | What is Inheritance ? | view | not done |
2 | Need of Inheritance | view | not done |
3 | Can OOP exist without Inheritance ? | view | not done |
4 | Types of Inheritance | view | not done |
5 | Real life examples of Multiple Inheritance | view | not done |
6 | Limitations of Inheritance | view | not done |
7 | Sealed Modifier | view | not done |
8 | Calling base method without creating instance | view | not done |
9 | new vs override | view | not done |
10 | Why JAVA doesn't support Multiple Inheritance | view | not done |
11 | Dreaded diamond in Multiple Inheritance | view | not done |
12 | Object Slicing | view | not done |
13 | Hide base class methods in JAVA | view | not done |
14 | Does overloading work with Inheritance | view | not done |
15 | Polymorphism vs Inheritance | view | not done |
16 | Generalization vs Aggregation vs Composition | view | not done |
17 | Friend Function / Class | homework | not done |
18 | Local Class, nested Class | homework | not done |
19 | Simulating Final Class | homework | not done |
Note: If class A inherits from class B, then what all are inherited from parent class and size calculation. Explore all possible combinations
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | What is Encapsulation ? | view | not done |
2 | Advantages of Encapsulation | view | not done |
3 | How to achieve Encapsulation | view | not done |
4 | Code / Implementation of Encapsulation | view | not done |
5 | Real world example of Encapsulation | view | not done |
Encapsulation is the combination of Data hiding and Abstraction
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | What is Abstraction ? | view | not done |
2 | When to Abstraction ? | homework | not done |
3 | How to achieve Abstraction ? | view | not done |
4 | Encapsulation vs Abstraction | view | not done |
5 | Interface vs Abstract classes in JAVA | view | not done |
Data abstraction is a way of hiding the implementation details and showing only the functionality to the users.
How to achieve :
1) C++ --> Access specifiers and header files
2) JAVA --> Interfaces and Abstract classes
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | Design a hashmap | view | not done |
2 | Design a LRU cache | view | not done |
3 | Design a Call Center | view | not done |
4 | Design a deck of cards | view | not done |
5 | Design a parking lot | view | not done |
6 | Design an online chat | view | not done |
SNo | Topic | Link | Date Completed |
---|---|---|---|
1 | Static and Dynamic Binding | view | not done |
2 | Message Passing | view | not done |
3 | C vs C++ vs JAVA | view | not done |
4 | Procedural vs OOPs | view | not done |
5 | Why JAVA is not purely OOB | view | not done |
6 | Is array primitive or object in JAVA | view | not done |
7 | Early and late binding | view | not done |
8 | Default access modifier in class | view | not done |
9 | No. of instances for an abstract class | view | not done |
10 | Garbage Collection | view | not done |
11 | Manipulators | view | not done |
12 | Finally block | view | not done |
13 | Final Variable | view | not done |
14 | Exception | view | not done |
15 | Error vs Exception | view | not done |
16 | Exception Handling | view | not done |
17 | Finalize method in JAVA | view | not done |
18 | Tokens | view | not done |
19 | Ternary Operator | view | not done |
20 | Enum | view | not done |
21 | Design Patterns | view | not done |
22 | Using struct vs class | view | not done |
23 | Cohesion vs Coupling | view | not done |
Is it possible for a class to inherit the constructor of its base class ?
super keyword
order of constructor and destructor calling sequence in case of various inheritance schemes.
Singleton pattern example.