- Expert C++
- Vardan Grigoryan Shunguang Wu
- 271字
- 2021-06-24 16:33:59
Details of Object-Oriented Programming
The difficulty of designing, implementing, and maintaining a software project arises with respect to the complexity of the project. A simple calculator could be written using the procedural approach (that is, the procedural programming paradigm), while a bank account management system would be too complex to implement using the same approach.
C++ supports Object-Oriented programming (OOP), a paradigm that is built upon dissecting entities into objects that exist in a web of close intercommunication. Imagine a simple scenario in the real world when you take the remote to change the TV channel. At least three different objects take part in this action: the remote, the TV, and, most importantly, you. To express the real-world objects and their relationship using a programming language, we aren't forced to use classes, class inheritance, abstract classes, interfaces, virtual functions, and so on. The mentioned features and concepts make the process of designing and coding a lot easier as they allow us to express and share ideas in an elegant manner, but they are not mandatory. As the creator of C++, Bjarne Stroustrup, says, "Not every program should be object-oriented." To understand high-level concepts and features of the OOP paradigm, we will try to look behind the scenes. Throughout this book, we will dive into the design of object-oriented programs. Understanding the essence of objects and their relationship, and then using them to design object-oriented programs, is one of the goals of this book.
In this chapter, we'll learn about the following topics in detail:
- Introduction to OOP
- The C++ object model
- Class relationships, including inheritance
- Polymorphism
- Useful design patterns
- 控糖控脂健康餐
- Vue.js 2 and Bootstrap 4 Web Development
- R語言編程指南
- SQL Server 2016數(shù)據(jù)庫應用與開發(fā)習題解答與上機指導
- Learning Vaadin 7(Second Edition)
- Odoo 10 Implementation Cookbook
- 并行編程方法與優(yōu)化實踐
- 奔跑吧 Linux內(nèi)核
- Laravel Design Patterns and Best Practices
- 深入理解Java虛擬機:JVM高級特性與最佳實踐
- Kohana 3.0 Beginner's Guide
- JavaScript Mobile Application Development
- micro:bit軟件指南
- Learning Perforce SCM
- Image Processing with ImageJ(Second Edition)