Anna University, Chennai
Department of Electrical and Electronics Engineering
Subject Code: CS8392
Subject Name: Object-Oriented Programming (OOPs)
Lecture Notes - All Units
Unit 1: Introduction to Object-Oriented Programming
1.1 Overview of OOPs
Evolution of Programming Paradigms
Characteristics of Object-Oriented Programming
Benefits of OOPs over Procedural Programming
1.2 Objects and Classes
Concept of Objects and Classes
Defining Classes and Objects in C++
Data Abstraction and Encapsulation
Access Specifiers: Public, Private, Protected
1.3 Constructors and Destructors
Constructors: Default Constructor, Parameterized Constructor, Copy Constructor
Destructors: Purpose and Syntax
Constructor Overloading and Destructor Overloading
1.4 Friend Functions and Friend Classes
Friend Functions: Declaration and Definition
Friend Classes: Accessing Private and Protected Members
1.5 Static Members
Static Data Members
Static Member Functions
Static Member Variables vs. Static Member Functions
Unit 2: Inheritance and Polymorphism
2.1 Inheritance
Types of Inheritance: Single, Multiple, Multilevel, Hierarchical, Hybrid
Base Class and Derived Class
Access Control and Inheritance
Constructor and Destructor in Inheritance
2.2 Types of Inheritance in C++
Virtual Base Classes
Ambiguity Resolution in Inheritance
2.3 Polymorphism
Introduction to Polymorphism
Compile-Time Polymorphism: Function Overloading, Operator Overloading
Run-Time Polymorphism: Virtual Functions, Pure Virtual Functions
Dynamic Binding and Late Binding
2.4 Virtual Functions and Abstract Classes
Virtual Functions: Declaration and Implementation
Abstract Classes and Pure Virtual Functions
Interface vs. Abstract Class
Unit 3: Dynamic Memory Allocation and Exception Handling
3.1 Dynamic Memory Allocation
Memory Management in C++
new and delete Operators
Memory Leakage and Memory Fragmentation
3.2 Exception Handling
Introduction to Exception Handling
try, catch, and throw Blocks
Exception Specifications
Standard Exception Classes
Unit 4: Templates and Standard Template Library (STL)
4.1 Templates
Introduction to Templates
Function Templates
Class Templates
Template Specialization
4.2 Standard Template Library (STL)
Overview of STL
Containers: Vector, List, Stack, Queue, Map, Set
Iterators: Input Iterators, Output Iterators, Forward Iterators, Bidirectional Iterators, Random Access Iterators
Algorithms: Sorting, Searching, Operations on Containers
Unit 5: File Handling and Advanced Concepts
5.1 File Handling in C++
File Streams: ifstream, ofstream, fstream
Opening and Closing Files
File Input/Output Operations
Sequential and Random Access of Files
5.2 Advanced Concepts
Smart Pointers: unique_ptr, shared_ptr, weak_ptr
Move Semantics and Rvalue References
Lambda Expressions
Multithreading and Concurrency
These lecture notes cover the essential concepts of Object-Oriented Programming (OOPs), tailored for students in the Department of Electrical and Electronics Engineering at Anna University, Chennai. With a total of 207 pages in PDF format, these notes provide in-depth explanations, examples, and illustrations to facilitate understanding. Students will gain proficiency in OOPs principles, inheritance, polymorphism, dynamic memory allocation, exception handling, templates, STL, file handling, and advanced C++ concepts, empowering them to apply these skills in software development and engineering projects.
CS8392-LN notes.pdf (Size: 3.41 MB / Downloads: 0)