Object Oriented Programming with C++ 2/e
OUP India (Verlag)
978-0-19-806530-2 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
Beginning with an explanation of the procedure-oriented programming system, the role played by structures in this system, and the reasons that led to the creation of OOPS, the book provides a systematic discussion of features such as classes, objects, dynamic memory management, constructors, destructors, inheritance, dynamic polymorphism, and operator overloading. The concepts of stream handling, templates (including the Standard Template Library), and exception
handling have been covered in detail to provide more control and convenience to programmers.
Sourav Sahay works as a Lead Consultant with Capgemini, USA. He lives in Michigan. He has nearly 13 years of experience in the software industry. The areas of software engineering in which he has worked include C, C++, Java, OOAD, Oracle, Visual Basic, Crystal Reports, PegaRULES Process Commander and web programming (JEE, XML, XSLT, Castor etc.). 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 programs 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.
1. INTRODUCTION TO C++; 1.1 A REVIEW OF STRUCTURES; 1.1.1 THE NEED FOR STRUCTURES; 1.1.2 CREATING A NEW DATA TYPE USING STRUCTURES; 1.1.3 USING STRUCTURES IN APPLICATION PROGRAMS; 1.2 PROCEDURE-ORIENTED PROGRAMMING SYSTEMS; 1.3 OBJECT-ORIENTED PROGRAMMING SYSTEMS; 1.4 COMPARISON OF C++ WITH C; 1.5 CONSOLE INPUT/OUTPUT IN C++; 1.5.1 CONSOLE OUTPUT; 1.5.2 CONSOLE INPUT; 1.6 VARIABLES IN C++; 1.7 REFERENCE VARIABLES IN C++; 1.8 FUNCTION PROTOTYPING; 1.9 FUNCTION OVERLOADING; 1.10 DEFAULT VALUES FOR FORMAL ARGUMENTS OF FUNCTIONS; 1.11 INLINE FUNCTIONS; 2. CLASSES AND OBJECTS; 2.1 INTRODUCTION TO CLASSES AND OBJECTS; 2.1.1 PRIVATE AND PUBLIC MEMBERS; 2.1.2 OBJECTS; 2.1.3 THE SCOPE RESOLUTION OPERATOR; 2.1.4 CREATING LIBRARIES USING THE SCOPE RESOLUTION OPERATOR; 2.1.5 USING CLASSES IN APPLICATION PROGRAMS; 2.1.6 THE 'THIS' POINTER; 2.1.7 DATA ABSTRACTION; 2.1.8 EXPLICIT ADDRESS MANIPULATION; 2.1.9 THE ARROW OPERATOR; 2.1.10 CALLING ONE MEMBER FUNCTION FROM ANOTHER; 2.2 MEMBER FUNCTIONS AND MEMBER DATA; 2.2.1 OVERLOADED MEMBER FUNCTIONS; 2.2.2 DEFAULT VALUES FOR FORMAL ARGUMENTS OF MEMBER FUNCTIONS; 2.2.3 INLINE MEMBER FUNCTIONS; 2.2.4 CONSTANT MEMBER FUNCTIONS; 2.2.5 MUTABLE DATA MEMBERS; 2.2.6 FRIENDS; 2.2.7 STATIC MEMBERS; 2.3 OBJECTS AND FUNCTIONS; 2.4 OBJECTS AND ARRAYS; 2.4.1 ARRAYS OF OBJECTS; 2.4.2 ARRAYS INSIDE OBJECTS; 2.5 NAMESPACES; 2.6 NESTED/INNER CLASSES; 3. DYNAMIC MEMORY MANAGEMENT; 3.1 INTRODUCTION; 3.2 DYNAMIC MEMORY ALLOCATION; 3.3 DYNAMIC MEMORY DEALLOCATION; 3.4 THE SET_NEW_HANDLER() FUNCTION; 4. CONSTRUCTORS AND DESTRUCTORS; 4.1 CONSTRUCTORS; 4.1.1 THE ZERO-ARGUMENT CONSTRUCTOR; 4.1.2 PARAMETERIZED CONSTRUCTORS; 4.1.3 EXPLICIT CONSTRUCTORS; 4.1.4 COPY CONSTRUCTOR; 4.2 DESTRUCTORS; 4.3 THE PHILOSOPHY OF OOPS; 5. INHERITANCE 151; 5.1 INTRODUCTION TO INHERITANCE; 5.1.1 EFFECTS OF INHERITANCE; 5.1.2 BENEFITS OF INHERITANCE; 5.1.3 INHERITANCE IN ACTUAL PRACTICE; 5.1.4 BASE CLASS AND DERIVED CLASS OBJECTS; 5.1.5 ACCESSING MEMBERS OF THE BASE CLASS IN THE DERIVED CLASS; 5.2 BASE CLASS AND DERIVED CLASS POINTERS; 5.3 FUNCTION OVERRIDING; 5.4 BASE CLASS INITIALIZATION; 5.5 THE PROTECTED ACCESS SPECIFIER; 5.6 DERIVING BY DIFFERENT ACCESS SPECIFIERS; 5.6.1 DERIVING BY THE 'PUBLIC' ACCESS SPECIFIER; 5.6.2 DERIVING BY THE 'PROTECTED' ACCESS SPECIFIER; 5.6.3 DERIVING BY THE 'PRIVATE' ACCESS SPECIFIER; 5.7 DIFFERENT KINDS OF INHERITANCE; 5.7.1 MULTIPLE INHERITANCE; 5.7.2 AMBIGUITIES IN MULTIPLE INHERITANCE; 5.7.3 MULTI-LEVEL INHERITANCE; 5.7.4 HIERARCHICAL INHERITANCE; 5.7.5 HYBRID INHERITANCE; 5.8 ORDER OF INVOCATION OF CONSTRUCTORS AND DESTRUCTORS; 6. VIRTUAL FUNCTIONS AND DYNAMIC POLYMORPHISM; 6.1 THE NEED FOR VIRTUAL FUNCTIONS; 6.2 VIRTUAL FUNCTIONS; 6.3 THE MECHANISM OF VIRTUAL FUNCTIONS; 6.4 PURE VIRTUAL FUNCTIONS; 6.5 VIRTUAL DESTRUCTORS AND VIRTUAL CONSTRUCTORS; 6.5.1 VIRTUAL DESTRUCTORS; 6.5.2 VIRTUAL CONSTRUCTORS; 7. STREAM AND FILE HANDLING; 7.1 STREAMS; 7.2 THE CLASS HIERARCHY FOR HANDLING STREAMS; 7.3 TEXT AND BINARY INPUT/OUTPUT; 7.3.1 DATA STORAGE IN MEMORY; 7.3.2 INPUT/OUTPUT OF CHARACTER DATA; 7.3.3 INPUT/OUTPUT OF NUMERIC DATA; 7.3.4 A NOTE ON OPENING DISK FILES FOR I/O; 7.4 TEXT VERSUS BINARY FILES; 7.5 TEXT INPUT/OUTPUT; 7.5.1 TEXT OUTPUT; 7.5.2 TEXT INPUT; 7.6 BINARY INPUT/OUTPUT; 7.6.1 BINARY OUTPUT-THE WRITE() FUNCTION; 7.6.2 BINARY INPUT-THE READ() FUNCTION; 7.7 OPENING AND CLOSING FILES; 7.7.1 THE OPEN() FUNCTION; 7.7.2 THE CLOSE() FUNCTION; 7.8 FILES AS OBJECTS OF THE FSTREAM CLASS; 7.9 FILE POINTERS; 7.9.1 THE SEEKP() FUNCTION; 7.9.2 THE TELLP() FUNCTION; 7.9.3 THE SEEKG() FUNCTION; 7.9.4 THE TELLG() FUNCTION; 7.10 RANDOM ACCESS TO FILES; 7.11 OBJECT INPUT/OUTPUT THROUGH MEMBER FUNCTIONS; 7.12 ERROR HANDLING; 7.12.1 THE EOF() FUNCTION; 7.12.2 THE FAIL() FUNCTION; 7.12.3 THE BAD() FUNCTION; 7.12.4 THE CLEAR() FUNCTION; 7.13 MANIPULATORS; 7.13.1 PRE-DEFINED MANIPULATORS; 7.13.2 USER-DEFINED MANIPULATORS; 7.14 COMMAND LINE ARGUMENTS; 8. OPERATOR OVERLOADING, TYPE CONVERSION, NEW STYLE CASTS, AND RTTI; 8.1 OPERATOR OVERLOADING; 8.1.1 OVERLOADING OPERATORS-THE SYNTAX; 8.1.2 COMPILER INTERPRETATION OF OPERATOR-OVERLOADING FUNCTIONS; 8.1.3 OVERVIEW OF OVERLOADING UNARY AND BINARY OPERATORS; 8.1.4 OPERATOR OVERLOADING; 8.1.5 RULES FOR OPERATOR OVERLOADING; 8.2 OVERLOADING THE VARIOUS OPERATORS; 8.2.1 OVERLOADING THE INCREMENT AND DECREMENT OPERATORS (PREFIX AND POSTFIX); 8.2.2 OVERLOADING THE UNARY MINUS AND UNARY PLUS OPERATOR; 8.2.3 OVERLOADING THE ARITHMETIC OPERATORS; 8.2.4 OVERLOADING THE RELATIONAL OPERATORS; 8.2.5 OVERLOADING THE ASSIGNMENT OPERATOR; 8.2.6 OVERLOADING THE INSERTION AND EXTRACTION OPERATORS; 8.2.7 OVERLOADING THE NEW AND DELETE OPERATORS; 8.2.8 OVERLOADING THE SUBSCRIPT OPERATOR; 8.2.9 OVERLOADING THE POINTER-TO-MEMBER (->) OPERATOR (SMART POINTER); 8.3 TYPE CONVERSION 338; 8.3.1 BASIC TYPE TO CLASS TYPE; 8.3.2 CLASS TYPE TO BASIC TYPE; 8.3.3 CLASS TYPE TO CLASS TYPE; 8.4 NEW STYLE CASTS AND THE TYPEID OPERATOR; 8.4.1 THE DYNAMIC_CAST OPERATOR; 8.4.2 THE STATIC_CAST OPERATOR; 8.4.3 THE REINTERPRET_CAST OPERATOR; 8.4.4 THE CONST_CAST OPERATOR; 8.4.5 THE TYPEID OPERATOR; 9. DATA STRUCTURES; 9.1 INTRODUCTION; 9.2 LINKED LISTS; 9.3 STACKS; 9.4 QUEUES; 9.5 TREES; 9.5.1 BINARY TREES; 9.5.2 BINARY SEARCH TREES; 10. TEMPLATES; 10.1 INTRODUCTION; 10.2 FUNCTION TEMPLATES; 10.3 CLASS TEMPLATES; 10.3.1 NESTED CLASS TEMPLATES; 10.4 THE STANDARD TEMPLATE LIBRARY (STL); 10.4.1 THE LIST CLASS; 10.4.2 THE VECTOR CLASS; 10.4.3 THE PAIR CLASS; 10.4.4 THE MAP CLASS; 10.4.5 THE SET CLASS; 10.4.6 THE MULTIMAP CLASS; 10.4.7 THE MULTISET CLASS; 11. EXCEPTION HANDLING; 11.1 INTRODUCTION; 11.2 C-STYLE HANDLING OF ERROR-GENERATING CODE; 11.2.1 TERMINATE THE PROGRAM; 11.2.2 CHECK THE PARAMETERS BEFORE FUNCTION CALL; 11.2.3 RETURN A VALUE REPRESENTING AN ERROR; 11.3 C++-STYLE SOLUTION-THE TRY/THROW/CATCH CONSTRUCT; 11.3.1 IT IS NECESSARY TO CATCH EXCEPTIONS; 11.3.2 UNWINDING OF THE STACK; 11.3.3 NEED TO THROW CLASS OBJECTS; 11.3.4 ACCESSING THE THROWN OBJECT IN THE CATCH BLOCK; 11.3.5 THROWING PARAMETERIZED OBJECTS OF A NESTED EXCEPTION CLASS; 11.3.6 CATCHING UNCAUGHT EXCEPTIONS; 11.3.7 RETHROWING EXCEPTIONS; 11.4 LIMITATION OF EXCEPTION HANDLING; APPENDIX A-CASE STUDY; APPENDIX B-COMPARISON OF C++ WITH C; APPENDIX C-COMPARISON OF C++ WITH JAVA; APPENDIX D-OBJECT-ORIENTED ANALYSIS AND DESIGN; APPENDIX E-GLOSSARY; APPENDIX F-SELF TESTS; REFERENCES; INDEX
Zusatzinfo | Over 130 diagrams |
---|---|
Verlagsort | New Delhi |
Sprache | englisch |
Maße | 186 x 242 mm |
Gewicht | 726 g |
Themenwelt | Informatik ► Software Entwicklung ► Objektorientierung |
ISBN-10 | 0-19-806530-2 / 0198065302 |
ISBN-13 | 978-0-19-806530-2 / 9780198065302 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich