- 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
- Effective C#:改善C#代碼的50個有效方法(原書第3版)
- JavaScript 網(wǎng)頁編程從入門到精通 (清華社"視頻大講堂"大系·網(wǎng)絡(luò)開發(fā)視頻大講堂)
- Learning RabbitMQ
- 從0到1:HTML+CSS快速上手
- Java加密與解密的藝術(shù)
- C語言程序設(shè)計實踐教程
- C語言程序設(shè)計
- C語言程序設(shè)計同步訓(xùn)練與上機指導(dǎo)(第三版)
- Getting Started with LLVM Core Libraries
- Offer來了:Java面試核心知識點精講(框架篇)
- 一覽眾山小:ASP.NET Web開發(fā)修行實錄
- Enterprise Application Architecture with .NET Core
- Java EE基礎(chǔ)實用教程
- 高性能MVVM框架的設(shè)計與實現(xiàn):San
- Python數(shù)據(jù)科學(xué)實戰(zhàn)