Object Oriented Programming with C++ (Second Edition)
Price: 850.00 INR
ISBN:
9789354979460
Publication date:
06/03/2025
Paperback
760 pages
241x184mm
Price: 850.00 INR
ISBN:
9789354979460
Publication date:
06/03/2025
Paperback
760 pages
Second Edition
Reema Thareja
- Explains the concepts of object-oriented programming in accessible language and in connection to real-life problems as per NEP recommendations
- Offers numerous executable programs on Dev C++ and g++ compilers, complete with outputs, to help readers enhance their programming skills
- Includes notes and programming tips to reinforce critical concepts and best practices in program development
- Features case studies with interspersed programs within the text to demonstrate the practical implementation of concepts
New to the Second Edition
- A new chapter on problem-solving and programming containing the various strategies used for problem-solving
- New sections on explicit constructors, command line arguments, and re-throwing exceptions
- A new appendix including topics like object-oriented approach in real-life problems, Abstraction models and Software evaluation
Rights: World Rights
Second Edition
Reema Thareja
Description
The second edition of Object Oriented Programming with C++ is meticulously crafted to cater to the needs of undergraduate students pursuing computer science engineering, information technology, and postgraduate students of computer applications. The primary objective is to cultivate proficient programming skills through a comprehensive understanding of C++ programming concepts and their practical applications. Structured in a logical sequence, the book initiates with an introduction to programming and problem-solving, object-oriented programming, and C++ fundamentals. Subsequent chapters delve into essential topics such as control structures, functions, arrays, strings, pointers, structures, unions, and enumerations. Moreover, advanced concepts including classes, objects, constructors, destructors, operator overloading, inheritance, polymorphism, templates, generics, and exception handling are thoroughly elucidated. Furthermore, the book extensively covers the Standard Template Library (STL) and delves into the intricacies of object-oriented analysis, design, and development. Annexures appended to various chapters (can be accessed with the help of QR codes) offer supplementary insights on topics like user-defined header files, pointers, bit-fields, volatile and restrict qualifiers, as well as smart pointers.
About the author
Dr Reema Thareja is Assistant Professor in the Department of Computer Science, Shyama Prasad Mukherji College, University of Delhi. In her 18 years of teaching experience, she has taught several courses including BA, BSc, MSc, BBA, MBA, BCA, and MCA.
Dr Thareja has authored several books in Computer Science and her books have been well accepted across the globe. She has published more than 22 research papers in international journals of repute and filed four patents. She also launched a free mobile app, Jruma, for Apple as well Android devices to promote learning through quizzing and excite users by giving them an opportunity to earn while they learn.
Besides being an author, she is an eminent speaker. Dr Thareja has conducted several Faculty Development Programmes, Seminars, Webinars, and Students' Workshops in India, the UAE, and the USA. She was also invited as a speaker for the Global Virtual Summit in New York.
Dr. Thareja is a Board Member of Studies in Computer Science for two eminent colleges in Vijayawada and a member of Technical Advisory Board of Refactor Academy. Being a member of Computer Society of India, Editorial Board and Elite Speakers group of IMRF have added feathers in her cap. She has received multiple awards and recognitions for her immense contributions in the field of education.
Second Edition
Reema Thareja
Table of contents
Chapter 1 discusses the various strategies used for problem-solving. Topics such as algorithms, flowcharts and pseudocodes supported with some illustrative problems are covered in this chapter.
Chapter 2 provides an introduction to programming languages, different programming paradigms, concepts of OOP along with merits and demerits of object oriented programming languages. The chapter also gives a comparative study of some OOP languages and highlights the difference between C and C++.
Chapter 3 discusses the building blocks of the C++ programming language. The chapter includes identifiers, constants, variables, operators, type conversion, and casting supported by the C++ language.
Annexure 1 given at the end of this chapter covers user-defined header files.
Chapter 4 deals with the different types of decision control statements in C++ such as conditional branching statement, iterative statement, break statement, control statement, and jump statement.
Case Study 1 including representation of roman numbers and calculation of day and date of birth using a program illustrates the implementation of concepts discussed in Chapters 2 and 3.
Chapter 5 deals with declaring, defining, and calling functions. The chapter also discusses the storage classes, variable scope in C++, inline functions, and function overloading. It ends with an important concept of recursive functions.
Chapter 6 provides a detailed explanation of arrays that includes one, two, and multi-dimensional arrays. The operations that can be performed on such arrays are also explained.
Case Study 2 shows the applications of concepts discussed in Chapters 4 and 5 with the help of merge sort and quick sort examples.
Chapter 7 unleashes the concept of strings which are better known as character arrays. The chapter not only focuses on reading and writing strings but also explains various operations that can be used to manipulate the strings.
Chapter 8 presents a detailed overview of pointers, pointer variables, pointer arithmetic, so and so forth. The chapter also relates the use of pointers with arrays, strings and functions for writing better and efficient programs. The chapter ends with the discussions on dynamic memory management.
Annexure 2 on the process of deciphering pointer declarations is given after Chapter 7.
Chapter 9 deals with the two user-defined data types—structure and union. The chapter includes the use of structures and unions with pointers, arrays and functions so that the inter-connectivity between the programming techniques can be well understood. Enumerated data types are also explained in this chapter.
Annexure 3 discuss bit-fields and slack bytes in structures followed by Case Study 3 on Josephus Problem shows the implementation of string operations.
Chapter 10 introduces the concept of classes and objects. It explains dynamic allocation of objects, static data members, nested, inline and friend functions, constant members, this pointer, empty and local classes.
Chapter 11 goes a step beyond declaration and definition of user defined classes. It unleashes the use of constructors and destructors. It also explains overloading of constructors and creating anonymous objects.
Case Study 4 covering the examples of Interpolation Search and Selection Sort presents the implementation of concepts covered in Chapters 9 and 10.
Chapter 12 is all about overloading unary and binary operators. It also discusses the conversion of a variable from one class type to another and from basic type to class type and vice versa.
Case Study 5 illustrates the concept of operator overloading discussed in Chapter 11.
Chapter 13 introduces inheritance in its various forms—single, hierarchical, hybrid, multi-level, and multiple. It provides a detailed explanation for different access specifiers, virtual functions, abstract classes, and object slicing. It also throws light on polymorphism and run time polymorphism through virtual functions. Abstract base classes, pure virtual functions, and virtual constructors and destructors are also covered in this chapter.
Chapter 14 discusses how data can be stored in files. The chapter explains the different types of files, and opening, processing and closing of files through a C++ program. These files are handled in text mode as well as binary mode for better clarity of the concepts. It also discusses sequential I/O functions and error handling during file operations.
Case Study 6 demonstrates the implementation of concepts discussed in Chapters 12 and 13.
Chapter 15 is about generic programming through templates. In this chapter, function and class templates have been discussed. It also gives a combo effect of templates and overloading, templates and inheritance, templates and static functions, templates and friends to name a few.
Chapter 16 presents the concepts of exception handling that can be used to make robust programs. The chapter demonstrates the application of exception handling in overloaded classes and functions, inherited classes, constructors or destructors. It also discusses various advantages and disadvantages of exception handling.
Chapter 17 elucidates the features of the standard template library. It also introduces some new features that have been added to the C++ language. These concepts include containers, iterators, algorithms, the string class, data type Boolean, keywords—mutable and explicit, namespaces, and finally the run time type identifiers.
Annexures 4 and 5 following this chapter briefs about the restrict and volatile qualifiers and smart pointers, respectively.
Chapter 18, the last chapter of the book, co-relates the use of objects and classes with the software development methodology. The chapter also gives an introduction of unified modelling language (UML).
The two appendices, namely, Appendix A discusses some of the important topics like an object-oriented approach in real-life problems, abstraction models and software evaluation and Appendix B provides frequently asked interview questions with answers and certain programming tips.
Second Edition
Reema Thareja
Description
The second edition of Object Oriented Programming with C++ is meticulously crafted to cater to the needs of undergraduate students pursuing computer science engineering, information technology, and postgraduate students of computer applications. The primary objective is to cultivate proficient programming skills through a comprehensive understanding of C++ programming concepts and their practical applications. Structured in a logical sequence, the book initiates with an introduction to programming and problem-solving, object-oriented programming, and C++ fundamentals. Subsequent chapters delve into essential topics such as control structures, functions, arrays, strings, pointers, structures, unions, and enumerations. Moreover, advanced concepts including classes, objects, constructors, destructors, operator overloading, inheritance, polymorphism, templates, generics, and exception handling are thoroughly elucidated. Furthermore, the book extensively covers the Standard Template Library (STL) and delves into the intricacies of object-oriented analysis, design, and development. Annexures appended to various chapters (can be accessed with the help of QR codes) offer supplementary insights on topics like user-defined header files, pointers, bit-fields, volatile and restrict qualifiers, as well as smart pointers.
About the author
Dr Reema Thareja is Assistant Professor in the Department of Computer Science, Shyama Prasad Mukherji College, University of Delhi. In her 18 years of teaching experience, she has taught several courses including BA, BSc, MSc, BBA, MBA, BCA, and MCA.
Dr Thareja has authored several books in Computer Science and her books have been well accepted across the globe. She has published more than 22 research papers in international journals of repute and filed four patents. She also launched a free mobile app, Jruma, for Apple as well Android devices to promote learning through quizzing and excite users by giving them an opportunity to earn while they learn.
Besides being an author, she is an eminent speaker. Dr Thareja has conducted several Faculty Development Programmes, Seminars, Webinars, and Students' Workshops in India, the UAE, and the USA. She was also invited as a speaker for the Global Virtual Summit in New York.
Dr. Thareja is a Board Member of Studies in Computer Science for two eminent colleges in Vijayawada and a member of Technical Advisory Board of Refactor Academy. Being a member of Computer Society of India, Editorial Board and Elite Speakers group of IMRF have added feathers in her cap. She has received multiple awards and recognitions for her immense contributions in the field of education.
Table of contents
Chapter 1 discusses the various strategies used for problem-solving. Topics such as algorithms, flowcharts and pseudocodes supported with some illustrative problems are covered in this chapter.
Chapter 2 provides an introduction to programming languages, different programming paradigms, concepts of OOP along with merits and demerits of object oriented programming languages. The chapter also gives a comparative study of some OOP languages and highlights the difference between C and C++.
Chapter 3 discusses the building blocks of the C++ programming language. The chapter includes identifiers, constants, variables, operators, type conversion, and casting supported by the C++ language.
Annexure 1 given at the end of this chapter covers user-defined header files.
Chapter 4 deals with the different types of decision control statements in C++ such as conditional branching statement, iterative statement, break statement, control statement, and jump statement.
Case Study 1 including representation of roman numbers and calculation of day and date of birth using a program illustrates the implementation of concepts discussed in Chapters 2 and 3.
Chapter 5 deals with declaring, defining, and calling functions. The chapter also discusses the storage classes, variable scope in C++, inline functions, and function overloading. It ends with an important concept of recursive functions.
Chapter 6 provides a detailed explanation of arrays that includes one, two, and multi-dimensional arrays. The operations that can be performed on such arrays are also explained.
Case Study 2 shows the applications of concepts discussed in Chapters 4 and 5 with the help of merge sort and quick sort examples.
Chapter 7 unleashes the concept of strings which are better known as character arrays. The chapter not only focuses on reading and writing strings but also explains various operations that can be used to manipulate the strings.
Chapter 8 presents a detailed overview of pointers, pointer variables, pointer arithmetic, so and so forth. The chapter also relates the use of pointers with arrays, strings and functions for writing better and efficient programs. The chapter ends with the discussions on dynamic memory management.
Annexure 2 on the process of deciphering pointer declarations is given after Chapter 7.
Chapter 9 deals with the two user-defined data types—structure and union. The chapter includes the use of structures and unions with pointers, arrays and functions so that the inter-connectivity between the programming techniques can be well understood. Enumerated data types are also explained in this chapter.
Annexure 3 discuss bit-fields and slack bytes in structures followed by Case Study 3 on Josephus Problem shows the implementation of string operations.
Chapter 10 introduces the concept of classes and objects. It explains dynamic allocation of objects, static data members, nested, inline and friend functions, constant members, this pointer, empty and local classes.
Chapter 11 goes a step beyond declaration and definition of user defined classes. It unleashes the use of constructors and destructors. It also explains overloading of constructors and creating anonymous objects.
Case Study 4 covering the examples of Interpolation Search and Selection Sort presents the implementation of concepts covered in Chapters 9 and 10.
Chapter 12 is all about overloading unary and binary operators. It also discusses the conversion of a variable from one class type to another and from basic type to class type and vice versa.
Case Study 5 illustrates the concept of operator overloading discussed in Chapter 11.
Chapter 13 introduces inheritance in its various forms—single, hierarchical, hybrid, multi-level, and multiple. It provides a detailed explanation for different access specifiers, virtual functions, abstract classes, and object slicing. It also throws light on polymorphism and run time polymorphism through virtual functions. Abstract base classes, pure virtual functions, and virtual constructors and destructors are also covered in this chapter.
Chapter 14 discusses how data can be stored in files. The chapter explains the different types of files, and opening, processing and closing of files through a C++ program. These files are handled in text mode as well as binary mode for better clarity of the concepts. It also discusses sequential I/O functions and error handling during file operations.
Case Study 6 demonstrates the implementation of concepts discussed in Chapters 12 and 13.
Chapter 15 is about generic programming through templates. In this chapter, function and class templates have been discussed. It also gives a combo effect of templates and overloading, templates and inheritance, templates and static functions, templates and friends to name a few.
Chapter 16 presents the concepts of exception handling that can be used to make robust programs. The chapter demonstrates the application of exception handling in overloaded classes and functions, inherited classes, constructors or destructors. It also discusses various advantages and disadvantages of exception handling.
Chapter 17 elucidates the features of the standard template library. It also introduces some new features that have been added to the C++ language. These concepts include containers, iterators, algorithms, the string class, data type Boolean, keywords—mutable and explicit, namespaces, and finally the run time type identifiers.
Annexures 4 and 5 following this chapter briefs about the restrict and volatile qualifiers and smart pointers, respectively.
Chapter 18, the last chapter of the book, co-relates the use of objects and classes with the software development methodology. The chapter also gives an introduction of unified modelling language (UML).
The two appendices, namely, Appendix A discusses some of the important topics like an object-oriented approach in real-life problems, abstraction models and software evaluation and Appendix B provides frequently asked interview questions with answers and certain programming tips.
Fundamentals of Information System
Reema Thareja
Python Programming (Second Edition)
Reema Thareja
Design And Analysis of Algorithms
S. Sridhar
Personality Development and Soft Skills
Barun.K.Mitra