Book description
A student-friendly, practical and example-driven book, Object-Oriented Programming with ANSI and Turbo C++ gives you a solid background in the fundamentals of C++ which has emerged as a standard object-oriented programming language. This comprehensive book, enriched with illustrations and a number of solved programs, will help you unleash the full potential of C++. Prof. Kamthane explains each concept in an easy-to-understand manner and takes you straight to applications. He believes that practice makes a man perfect, and this book aims at making you one.
Table of contents
- Cover Page
- Title Page
- Dedication Page
- Copyright Page
- Preface
- Acknowledgements
- Contents
-
1. Introduction to C++
- 1.1- Evolution of C++
- 1.2- ANSI Standard
- 1.3- Object-Oriented Technology
- 1.4- Disadvantage of Conventional Programming
- 1.5- Programming Paradigms
- 1.6- Preface to Object-Oriented Programming
- 1.7- Key Concepts of Object-Oriented Programming
- 1.8- Advantages of OOP
- 1.9- Object-Oriented Languages
- 1.10- Usage of OOP
- 1.11- Usage of C++
- Summary
- Exercises
-
2. Input and Output In C++
- 2.1- Introduction
- 2.2- Streams in C++
- 2.3- Pre-Defined Streams
- 2.4- Buffering
- 2.5- Stream Classes
- 2.6- Formatted and Unformatted Data
- 2.7- Unformatted Console I/O Operations
- 2.8- Typecasting with Cout Statement
- 2.9- Member Functions of Istream Class
- 2.10- Formatted Console I/O Operations
- 2.11- Bit Fields
- 2.12- Flags without Bit Field
- 2.13- Manipulators
- 2.14- User-Defined Manipulators
- 2.15- Manipulator with One Parameter
- 2.16- Manipulators with Multiple Parameters
- 2.17- Custom Built I/O Objects
- Summary
- Exercises
-
3. C++ Declarations
- 3.1- Introduction
- 3.2- Parts of C++ Program
- 3.3- Types of Tokens
- 3.4- Keywords
- 3.5- Identifiers
- 3.6- Dynamic Initialization
- 3.7- Data Types in C++
- 3.8- Basic Data Type
- 3.9- Derived Data Type
- 3.10- User-Defined Data Type
- 3.11- The Void Data Type
- 3.12- Type Modifiers
- 3.13- Wrapping Around
- 3.14- Typecasting
- 3.15- Constants
- 3.16- Constant Pointers
- 3.17- Operators in C and C++
- 3.18- Precedence of Operators in C++
- 3.19- Referencing (&) and Dereferencing (*) Operators
- 3.20- Scope Access Operator
- 3.21- Memory Management Operators
- 3.22- Comma Operator
- 3.23- Comma in Place of Curly Braces
- Summary
- Exercises
-
4. Control Structures
- 4.1- Introduction
- 4.2- Decision-Making Statements
- 4.3- The if–else Statement
- 4.4- The Nested if–else Statement
- 4.5- The jump Statement
- 4.6- The goto Statement
- 4.7- The Break Statement
- 4.8- The Continue Statement
- 4.9- The Switch Case Statement
- 4.10- The Nested Switch()Case Statement
- 4.11- Loops in C/C++
- 4.12- The for Loop
- 4.13- Nested for Loops
- 4.14- The while Loop
- 4.15- The do-while Loop
- Summary
- Exercises
-
5. Functions in C++
- 5.1- Introduction
- 5.2- The Main() Function in C and C++
- 5.3- Parts of Function
- 5.4- Passing Arguments
- 5.5- LValues and RValues
- 5.6- Return by Reference
- 5.7- Returning More Values by Reference
- 5.8- Default Arguments
- 5.9- The Const Argument
- 5.10- Inputting Default Arguments
- 5.11- Inline Functions
- 5.12- Function Overloading
- 5.13- Principles of Function Overloading
- 5.14- Precautions with Function Overloading
- 5.15- Library Functions
- Summary
- Exercises
-
6. Classes and Objects
- 6.1- Introduction
- 6.2- Structures in C
- 6.3- Structures in C++
- 6.4- Classes in C++
- 6.5- Declaring Objects
- 6.6- The public Keyword
- 6.7- The Private Keyword
- 6.8- The Protected Keyword
- 6.9- Defining Member Functions
- 6.10- Characteristics of Member Functions
- 6.11- Outside Member Function Inline
- 6.12- Rules for Inline Functions
- 6.13- Data Hiding or Encapsulation
- 6.14- Classes, Objects and Memory
- 6.15- Static Member Variables and Functions
- 6.16- Static Object
- 6.17- Array of Objects
- 6.18- Objects as Function Arguments
- 6.19- Friend Functions
- 6.20- The Const Member Function
- 6.21- Recursive Member Function
- 6.22- Local Classes
- 6.23- Empty, Static and Const Classes
- 6.24- Member Functions and Non-Member Functions
- 6.25- The Main() as a Member Function
- 6.26- Overloading Member Functions
- 6.27- Overloading Main() Function
- 6.28- The Main(), Member Function and Indirect Recursion
- 6.29- Bit Fields and Classes
- Summary
- Exercises
-
7. Constructors and Destructors
- 7.1- Introduction
- 7.2- Constructors and Destructors
- 7.3- Characteristics of Constructors and Destructors
- 7.4- Applications with Constructors
- 7.5- Constructors with Arguments
- 7.6- Overloading Constructors
- 7.7- Constructors with Default Arguments
- 7.8- Copy Constructors
- 7.9- The Const Objects
- 7.10- Destructors
- 7.11- Calling Constructors and Destructors
- 7.12- Qualifier and Nested Classes
- 7.13- Anonymous Objects
- 7.14- Private Constructors and Destructors
- 7.15- Dynamic Initialization Using Constructors
- 7.16- Dynamic Operators and Constructors
- 7.17- The Main() as a Constructor and Destructor
- 7.18- Recursive Constructor
- 7.19- Program ExecutiOn Before Main()
- 7.20- Constructor and Destructor with Static Members
- 7.21- Local vs Global Object
- Summary
- Exercises
-
8. Operator Overloading and Type Conversion
- 8.1- Introduction
- 8.2- The Keyword Operator
- 8.3- Overloading Unary Operators
- 8.4- Operator Return Type
- 8.5- Constraint on Increment and Decrement Operators
- 8.6- Overloading Binary Operators
- 8.7- Overloading with Friend Function
- 8.8- Type Conversion
- 8.9- Rules for Overloading Operators
- 8.10- One Argument Constructor and Operator Function
- 8.11- Overloading Stream Operators
- Summary
- Exercises
-
9. Inheritance
- 9.1- Introduction
- 9.2- Access Specifiers and Simple Inheritance
- 9.3- Protected Data with Private Inheritance
- 9.4- Types of Inheritances
- 9.5- Single Inheritance
- 9.6- Multilevel Inheritance
- 9.7- Multiple Inheritance
- 9.8- Hierarchical Inheritance
- 9.9- Hybrid Inheritance
- 9.10- Multipath Inheritance
- 9.11- Virtual Base Classes
- 9.12- Constructors, Destructors and Inheritance
- 9.13- Object as a Class Member
- 9.14- Abstract Classes
- 9.15- Qualifier Classes and Inheritance
- 9.16- Common Constructor
- 9.17- Pointers and Inheritance
- 9.18- Overloading Member Function
- 9.19- Advantages of Inheritance
- 9.20- Disadvantages of Inheritance
- Summary
- Exercises
-
10. Pointers and Arrays
- 10.1- Introduction
- 10.2- Pointer Declaration
- 10.3- Void Pointers
- 10.4- Wild Pointers
- 10.5- Pointer to Class
- 10.6- Pointer to Object
- 10.7- The this Pointer
- 10.8- Pointer to Derived Classes and Base Classes
- 10.9- Pointer to Members
- 10.10- Accessing Private Members with Pointers
- 10.11- Direct Access to Private Members
- 10.12- Address of Object and Void Pointers
- 10.13- Arrays
- 10.14- Characteristics of Arrays
- 10.15- Initialization of Arrays Using Functions
- 10.16- Arrays of Classes
- Summary
- Exercises
- 11. C++ and Memory
-
12. Binding, Polymorphism and Virtual Functions
- 12.1- Introduction
- 12.2- Binding in C++
- 12.3- Pointer to Derived Class Objects
- 12.4- Virtual Functions
- 12.5- Rules for Virtual Functions
- 12.6- Array of Pointers
- 12.7- Pure Virtual Functions
- 12.8- Abstract Classes
- 12.9- Working of Virtual Functions
- 12.10- Virtual Functions in Derived Classes
- 12.11- Object Slicing
- 12.12- Constructors and Virtual Functions
- 12.13- Virtual Destructors
- 12.14- Destructors and Virtual Functions
- Summary
- Exercises
-
13. Applications with Files
- 13.1- Introduction
- 13.2- File Stream Classes
- 13.3- Steps of File Operations
- 13.4- Checking for Errors
- 13.5- Finding End of a File
- 13.6- File Opening Modes
- 13.7- File Pointers and Manipulators
- 13.8- Manipulators with Arguments
- 13.9- Sequential Read and Write Operations
- 13.10- Binary and ASCII Files
- 13.11- Random Access Operation
- 13.12- Error Handling Functions
- 13.13- Command Line Arguments
- 13.14- Strstreams
- 13.15- Sending Output to Devices
- Summary
- Exercises
-
14. Generic Programming with Templates
- 14.1- Introduction
- 14.2- Need of Template
- 14.3- Definition of Class Template
- 14.4- Normal Function Template
- 14.5- Working of Function Templates
- 14.6- Class Template with More Parameters
- 14.7- Function Templates with More Arguments
- 14.8- Overloading of Template Functions
- 14.9- Member Function Templates
- 14.10- Recursion with Template Function
- 14.11- Class Template with Overloaded Operators
- 14.12- Class Template Revisited
- 14.13- Class Templates and Inheritance
- 14.14- Bubble Sort Using Function Template
- 14.15- Guidelines for Templates
- 14.16- Difference Between Templates and Macros
- 14.17- Linked List with Templates
- Summary
- Exercises
-
15. Exception Handling
- 15.1- Introduction
- 15.2- Principles of Exception Handling
- 15.3- The Keywords Try, Throw and Catch
- 15.4- Exception Handling Mechanism
- 15.5- Multiple Catch Statements
- 15.6- Catching Multiple Exceptions
- 15.7- Rethrowing Exception
- 15.8- Specifying Exception
- 15.9- Exceptions in Constructors and Destructors
- 15.10- Controlling Uncaught Exceptions
- 15.11- Exception and Operator Overloading
- 15.12- Exception and Inheritance
- 15.13- Class Template with Exception Handling
- 15.14- Guidelines for Exception Handling
- Summary
- Exercises
-
16. Working with Strings
- 16.1- Introduction
- 16.2- Moving from C String to C++ String
- 16.3- Declaring and Initializing String Objects
- 16.4- Relational Operators
- 16.5- Handling String Objects
- 16.6- String Attributes
- 16.7- Accessing Elements of Strings
- 16.8- Comparing and Exchanging
- 16.9- Miscellaneous Functions
- Summary
- Exercises
- 17. Overview of Standard Template Library (STL)
-
18. Additional about Ansi and Turbo C++
- 18.1- Introduction
- 18.2- Innovative Data Types
- 18.3- New Typecasting Operators
- 18.4- The Keyword explicit
- 18.5- The Keyword mutable
- 18.6- Namespace Scope
- 18.7- Nested Namespaces
- 18.8- Anonymous Namespaces
- 18.9- The Using Keyword
- 18.10- Namespace Alias
- 18.11- The Standard Namespace STD
- 18.12- ANSI and TURBO C++ Keywords
- 18.13- ANSI and TURBO C++ Header Files
- 18.14- C++ Operator Keywords
- Summary
- Exercises
-
19. Marching Towards Java
- 19.1- Evolution of Java
- 19.2- Java Technology
- 19.3- Features of Java
- 19.4- Overview of Java
- 19.5- Differences between C/C++ and Java
- 19.6- Keywords
- 19.7- Java Virtual Machine (JVM)
- 19.8- Structure of a Java Program
- 19.9- Implementing a Java Program
- 19.10- Constants, Variables and Data Types
- 19.11- Classes, Objects and Methods
- 19.12- Overriding Methods
- 19.13- Multithreading
- 19.14- Life Cycle of Thread
- 19.15- Packages
- 19.16- Applets
- Summary
- Exercises
- Appendices
- Index
- Back Cover
Product information
- Title: Object-Oriented Programming with ANSI and Turbo C++
- Author(s):
- Release date: July 2006
- Publisher(s): Pearson India
- ISBN: 9788131703830
You might also like
book
Exploring C++ 11, Second Edition
Exploring C++ divides C++ up into bite-sized chunks that will help you learn the language one …
book
C++: A Dialog Programming with the C++ Standard Library
Simply the best way for beginners to learn standard C++. C++: A Dialog is the easiest, …
book
Programming and Problem Solving with C++: Comprehensive, 6th Edition
The best-selling Programming and Problem Solving with C++, now in it's Sixth Edition, remains the clearest …
book
Object-Oriented Programming with C++
Object-Oriented Programming (OOP) is a paradigm shift in programming, which defines, creates, and manipulates objects to …