Welcome to the CS304 (Object-Oriented Programming) reference archive! This repository contains highly detailed, comprehensive lecture notes designed for students of CS304. The explanations are written in Roman Urdu/Hindi paired with complete C++ code blocks, making complex programming paradigms extremely accessible and easy to digest.
The files have been structured, styled, and compiled into premium-quality, print-ready PDF notes.
CS304/
βββ README.md # This course index and guide
βββ CS304_OOP_Notes.pdf # Complete, combined 22-chapter e-book PDF (with cover & TOC)
βββ markdown/ # Raw markdown source notes (Chapters 1 to 22)
β βββ chapter_01.md
β βββ ...
βββ pdf/ # Individual, lecture-wise PDFs for targeted study
βββ chapter_01.pdf
βββ ...
Below is the curriculum index of the 22 lectures available in this archive. Click on any PDF link to open the standalone notes directly.
| Lecture | Title / Topic | Summary | Formats |
|---|---|---|---|
| 01 | Introduction to OOP | OOP paradigm vs. procedural programming. State, Attributes, and Behaviors of Tangible/Intangible Objects. | MD | PDF |
| 02 | Core OOP Principles | Key concepts of Information Hiding, Encapsulation, Abstraction, and Separation of Interface/Implementation. | MD | PDF |
| 03 | Abstraction & Classes | Practical mapping of real-world concepts into C++ classes. | MD | PDF |
| 04 | Object Relationships | Generalization, Specialization, and Inheritance structure. | MD | PDF |
| 05 | Multiple Inheritance | Multiple inheritance syntax and resolving the Diamond Problem. | MD | PDF |
| 06 | Class Compatibility | Downcasting, upcasting, and rules of assignment compatibility. | MD | PDF |
| 07 | C++ Class Syntax | C++ Class declaration structure, member variables, and access specifiers. | MD | PDF |
| 08 | Constructors & Copying | C++ Member functions, default and parameterized constructors, copy concepts. | MD | PDF |
| 09 | Copy Constructor & Destructors | Shallow vs. Deep copy, writing custom copy constructors, destructors. | MD | PDF |
| 10 | Const Members & this Pointer | Detailed use cases of this pointer, const member functions, and interface separation. |
MD | PDF |
| 11 | Initializer Lists | Const data members, Member Initializer Lists, and introduction to static members. | MD | PDF |
| 12 | Static Members & Object Arrays | Static data members, static member functions, and initializing arrays of objects. | MD | PDF |
| 13 | Object Pointers & Date Class | Working with pointers to objects, dynamic allocation, and building a Date class. | MD | PDF |
| 14 | Composition (Has-A) | Designing composition, constructor calling sequences, and object lifetimes. | MD | PDF |
| 15 | Aggregation & Friend Functions | Aggregation vs. Composition, friend classes, and friend functions. | MD | PDF |
| 16 | Operator Overloading | Introduction to operator overloading syntax, benefits, and rules in C++. | MD | PDF |
| 17 | Binary Operator Overloading | Overloading binary arithmetic/comparison operators, custom assignment operator. | MD | PDF |
| 18 | Self-Assignment Checks | Handling the self-assignment problem, using friend functions for symmetric overloading. | MD | PDF |
| 19 | Stream Operator Overloading | Overloading stream insertion (<<) and extraction (>>) operators. |
MD | PDF |
| 20 | Unary Operators & Custom String | Designing a custom String class and overloading prefix/postfix unary operators. | MD | PDF |
| 21 | Unary Increment & Conversions | Detailed unary pre/post-increment overloading and custom type conversions. | MD | PDF |
| 22 | C++ Inheritance Mechanics | Base vs. Derived class relationship rules, access modes, constructor chaining. | MD | PDF |