Transcription of OOP 01-45 11-09-2013 updated
1 Object Oriented programming (CS304) VU Virtual University of Pakistan 1 CS304-Handouts Object Oriented programming (CS304) VU Virtual University of Pakistan 2 lecture .. 8 INTRODUCTION .. 8 WHAT IS A MODEL?
2 10 OO MODELS: .. 11 OBJECT-ORIENTATION - ADVANTAGES .. 12 WHAT IS AN OBJECT? .. 12 TANGIBLE AND INTANGIBLE OBJECTS .. 13 SUMMARY: .. 14 lecture .. 15 INFORMATION HIDING: .. 15 ENCAPSULATION .. 16 INTERFACE .. 17 IMPLEMENTATION .. 18 SEPARATION OF INTERFACE & IMPLEMENTATION .. 19 MESSAGES .. 19 SUMMARY .. 19 lecture .. 21 ABSTRACTION .. 21 CLASSES .. 23 INHERITANCE .. 25 lecture .. 29 CONCEPTS RELATED WITH INHERITANCE .. 29 GENERALIZATION .. 29 SUB-TYPING (EXTENSION) .. 31 SPECIALIZATION (RESTRICTION) .. 32 OVERRIDING.
3 34 ABSTRACT CLASSES .. 36 CONCRETE CLASSES .. 38 lecture .. 40 SIMPLE ASSOCIATION .. 50 COMPOSITION .. 52 AGGREGATION .. 54 lecture .. 55 CLASS COMPATIBILITY .. 55 POLYMORPHISM .. 56 POLYMORPHISM IN OO MODEL .. 56 POLYMORPHISM ADVANTAGES .. 57 OBJECT-ORIENTED MODELING AN EXAMPLE .. 57 lecture .. 65 CLASS .. 65 TYPE IN C++ .. 65 ABSTRACTION .. 66 DEFINING A NEW USER DEFINED TYPE .. 66 OBJECT AND CLASS: .. 68 ACCESSING MEMBERS .. 68 ACCESS SPECIFIERS .. 69 lecture .. 72 Object Oriented programming (CS304) VU Virtual University of Pakistan MEMBER FUNCTIONS.
4 72 DEFINING MEMBER FUNCTIONS .. 72 INLINE FUNCTIONS .. 73 CONSTRUCTOR .. 75 CONSTRUCTOR PROPERTIES .. 75 DEFAULT CONSTRUCTOR .. 76 CONSTRUCTOR OVERLOADING .. 77 CONSTRUCTOR OVERLOADING .. 78 COPY 79 SHALLOW COPY .. 81 DEEP COPY .. 82 lecture .. 84 SHALLOW COPY .. 85 DEEP COPY .. 90 IMPORTANT POINTS ABOUT COPY CONSTRUCTOR: .. 94 DESTRUCTOR .. 94 ACCESSOR FUNCTIONS .. 95 THIS POINTER .. 96 lecture .. 99 USES OF THIS POINTER .. 99 SEPARATION OF INTERFACE AND IMPLEMENTATION .. 99 COMPLEX NUMBER .. 100 CONST MEMBER FUNCTIONS.
5 102 THIS POINTER AND CONST MEMBER FUNCTION .. 104 lecture .. 105 USAGE EXAMPLE OF CONSTANT MEMBER FUNCTIONS .. 105 DIFFERENCE BETWEEN INITIALIZATION AND ASSIGNMENT: .. 106 MEMBER INITIALIZER LIST .. 106 CONST OBJECTS .. 107 STATIC VARIABLES .. 109 lecture .. 112 ACCESSING STATIC DATA MEMBER .. 113 LIFE OF STATIC DATA MEMBER .. 114 STATIC MEMBER FUNCTION .. 115 THIS POINTER AND STATIC MEMBER FUNCTIONS .. 116 GLOBAL VARIABLE VS. STATIC MEMBERS .. 116 ARRAY OF OBJECTS .. 116 lecture .. 118 POINTER TO OBJECTS .. 118 BREAKUP OF NEW OPERATION.
6 119 CASE STUDY .. 119 COMPLETE CODE OF DATE CLASS .. 121 lecture .. 124 COMPOSITION .. 124 lecture .. 132 AGGREGATION .. 135 FRIEND FUNCTIONS .. 138 lecture .. 142 Object Oriented programming (CS304) VU Virtual University of Pakistan OPERATOR OVERLOADING .. 142 lecture .. 149 OVERLOADING ASSIGNMENT 151 lecture .. 155 SELF ASSIGNMENT PROBLEM: .. 155 OTHER BINARY OPERATORS .. 156 FRIEND FUNCTIONS AND OPERATOR OVERLOADING .. 157 lecture .. 158 STREAM INSERTION OPERATOR.
7 158 STREAM EXTRACTION OPERATOR .. 158 OVERLOADING STREAM INSERTION OPERATOR .. 159 OVERLOADING STREAM EXTRACTION OPERATOR: .. 160 OTHER BINARY OPERATORS: .. 161 lecture .. 163 SUBSCRIPT [] OPERATOR .. 164 OVERLOADING SUBSCRIPT [] OPERATOR .. 164 OVERLOADING FUNCTION () OPERATOR .. 165 FUNCTION OPERATOR PERFORMING SUB STRING OPERATION, .. 165 UNARY OPERATORS .. 166 lecture .. 168 BEHAVIOR OF ++ AND -- FOR PRE-DEFINED TYPES: .. 168 POST-INCREMENT OPERATOR: .. 169 TYPE CONVERSION .. 170 USER DEFINED TYPES: .. 173 DRAWBACKS OF TYPE CONVERSION OPERATOR.
8 174 lecture .. 175 PRACTICAL IMPLEMENTATION OF INHERITANCE IN C++ .. 175 INHERITANCE IN CLASSES .. 175 UML NOTATION .. 175 INHERITANCE IN C++ .. 175 IS A RELATIONSHIP .. 176 lecture .. 183 ACCESSING BASE CLASS MEMBER FUNCTIONS IN DERIVED CLASS: .. 183 PROTECTED ACCESS SPECIFIER: .. 185 IS A RELATIONSHIP .. 186 STATIC TYPE .. 189 lecture .. 191 MODIFIED DEFAULT CONSTRUCTOR .. 199 lecture .. 207 OVERLOADING VS. OVERRIDING .. 207 HIERARCHY OF INHERITANCE .. 211 lecture .. 213 BASE INITIALIZATION .. 213 TYPES OF INHERITANCE.
9 214 PRIVATE INHERITANCE .. 216 Object Oriented programming (CS304) VU Virtual University of Pakistan 5 lecture .. 218 SPECIALIZATION (RESTRICTION) .. 218 PROTECTED INHERITANCE .. 222 PROPERTIES OF PROTECTED INHERITANCE .. 223 lecture .. 225 VIRTUAL FUNCTIONS .. 225 VIRTUAL FUNCTIONS: .. 230 SHAPE HIERARCHY .. 230 STATIC VS DYNAMIC BINDING.
10 231 lecture .. 233 ABSTRACT CLASSES .. 233 CONCRETE CLASSES .. 234 ABSTRACT CLASSES IN C++ .. 234 PURE VIRTUAL FUNCTIONS .. 234 SHAPE HIERARCHY .. 235 VIRTUAL DESTRUCTORS .. 236 VIRTUAL FUNCTIONS USAGE .. 238 V TABLE .. 240 DYNAMIC DISPATCH (DYNAMIC BINDING) .. 242 lecture .. 243 POLYMORPHISM CASE STUDY: A SIMPLE PAYROLL APPLICATION .. 243 SHAPE HIERARCHY REVISITED: .. 246 lecture .. 250 MULTIPLE INHERITANCE .. 250 PROBLEMS IN MULTIPLE INHERITANCE .. 251 VIRTUAL INHERITANCE .. 256 lecture .. 258 GENERIC programming .. 259 259 FUNCTION TEMPLATES.