Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000003494527 | QA76.73.C153 S23 2006 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Designed to serve as a textbook for undergraduate engineering and MCA students, Object-Oriented Programming with C++ imparts a clear understanding of objects and the method of modelling them in OOPS. The book contains a systematic discussion of features such as classes, objects, dynamic memory management, constructors, destructors, inheritance, overloading, polymorphism, stream handling and exception handling.
Author Notes
S. Sahay, Senior Consulting Software Engineer, Blue State Solutions, Albany, New York. He has over eight years of experience in the software industry. His programming experience area includes C, C++, Java, OOAD, Oracle, Visual Basic, Crystal Reports, PegaRules Process Commander, HTML, and JavaScript.
He has taught C and C++ to students of Calcutta University on behalf of CMC Ltd. Besides this, he has conducted a number of training programmes and workshops on various subjects for large corporate houses and prestigious software development firms, such as RS Software, Sema Group, Life Insurance Corporation, All India Radio, and Border Security Forces.
Table of Contents
Preface | p. iii |
1 Introduction to C++ | p. 1 |
1.1 A Review of Structures | p. 2 |
1.2 Procedure-Oriented Programming System | p. 7 |
1.3 Object-Oriented Programming System | p. 9 |
1.4 Comparison of C++ with C | p. 11 |
1.5 Console Input/Output in C++ | p. 12 |
1.6 Variables in C++ | p. 18 |
1.7 Reference Variables in C++ | p. 19 |
1.8 Function Prototyping | p. 25 |
1.9 Function Overloading | p. 29 |
1.10 Default Values for Formal Arguments of Functions | p. 31 |
1.11 Inline Functions | p. 34 |
2 Classes and Objects | p. 41 |
2.1 Introduction to Classes and Object | p. 42 |
2.2 Member Functions and Member Data | p. 64 |
2.3 Objects and Functions | p. 84 |
2.4 Objects and Arrays | p. 87 |
2.5 Namespaces | p. 88 |
2.6 Nested Classes | p. 92 |
3 Dynamic Memory Management | p. 103 |
3.1 Introduction | p. 104 |
3.2 Dynamic Memory Allocation | p. 105 |
3.3 Dynamic Memory Deallocation | p. 110 |
3.4 The set_new_handler() function | p. 116 |
4 Constructors and Destructors | p. 121 |
4.1 Constructors | p. 122 |
4.2 Destructors | p. 140 |
4.3 The Philosophy of OOPS | p. 145 |
5 Inheritance | p. 151 |
5.1 Introduction to Inheritance | p. 152 |
5.2 Base Class and Derived Class Pointers | p. 157 |
5.3 Function Overriding | p. 163 |
5.4 Base Class Initialization | p. 166 |
5.5 The Protected Access Specifier | p. 169 |
5.6 Deriving by Different Access Specifiers | p. 170 |
5.7 Different Kinds of Inheritance | p. 177 |
5.8 Order of Invocation of Constructors and Destructors | p. 187 |
6 Virtual Functions and Dynamic Polymorphism | p. 195 |
6.1 The Need for Virtual Functions | p. 196 |
6.2 Virtual Function | p. 220 |
6.3 The Mechanism of Virtual Functions | p. 205 |
6.4 Pure virtual Functions | p. 207 |
6.5 Virtual Destructors and Virtual Constructors | p. 213 |
7 Stream Handling | p. 221 |
7.1 Streams | p. 222 |
7.2 The Class Hierarchy for Handling Streams | p. 222 |
7.3 Text and Binary Input/Output | p. 224 |
7.4 Text Versus Binary Files | p. 227 |
7.5 Text Input/Output | p. 228 |
7.6 Binary Input/Output | p. 238 |
7.7 Opening and Closing Files | p. 248 |
7.8 Files as Objects of the fstream Class | p. 250 |
7.9 File Pointers | p. 250 |
7.10 Random Accesses to Files | p. 253 |
7.11 Object Input/Output Through Member Functions | p. 254 |
7.12 Error Handling | p. 255 |
7.13 Manipulators | p. 257 |
8 Operator Overloading, Type Conversion, New Style Casts, and RTTI | p. 267 |
8.1 Operator Overloading | p. 268 |
8.2 Overloading the Various Operators | p. 28- |
8.3 Type Conversion | p. 338 |
8.4 New Style Casts and the typeid Operator | p. 343 |
9 Templates | p. 363 |
9.1 Introduction | p. 364 |
9.2 Function Templates | p. 365 |
9.3 Class Templates | p. 370 |
9.4 The Standard Template Library (STL) | p. 377 |
10 Exception Handing | p. 393 |
10.1 Introduction | p. 394 |
10.2 C-Style Handling of Error-generating Code | p. 394 |
10.3 C++-Style Solution-the try/throw/catch Construct | p. 399 |
10.4 Limitation of Exception Handing | p. 415 |
Appendix A Case Study | p. 419 |
A.1 A Word Query System | p. 419 |
Appendix B Comparison of C++ with C | p. 429 |
Appendix C Comparison of C++ with Java | p. 431 |
C.1 Similarities between C++ and Java | p. 431 |
C.2 Differences between C++ and Java | p. 433 |
Appendix D Object-Oriented Analysis and Design | p. 445 |
D.1 Introduction | p. 445 |
D.2 The Object-Oriented Model | p. 446 |
D.3 Analysis | p. 445 |
D.4 System Design | p. 456 |
D.5 Object Design | p. 457 |
D.6 Implementation | p. 458 |
Appendix E Glossary | p. 459 |
Appendix F Self Tests | p. 465 |
Test 1 | p. 465 |
Test 2 | p. 468 |
Test 3 | p. 471 |
References | p. 475 |
Index | p. 477 |