Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance, and "the virtuals"-virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas in which they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects your programs.Highlights Explores the program behavior implicit in the C++ Object Model's support of object-oriented programming. Explains the basic implementation of the object-oriented features and the trade offs implicit in those features. Examines the impact on performance in terms of program transformation. Provides abundant program examples, diagrams, and performance measurements to relate object-oriented concepts to the underlying object model.If you are a C++ programmer who desires a fuller understanding of what is going on "under the hood," then Inside the C++ Object Model is for you!
Cited By
- Liu P, Zhao G and Huang J Securing unsafe rust programs with XRust Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, (234-245)
- El Hajj I, Jablin T, Milojicic D and Hwu W (2017). SAVI objects: sharing and virtuality incorporated, Proceedings of the ACM on Programming Languages, 1:OOPSLA, (1-24), Online publication date: 12-Oct-2017.
- Ducournau R (2011). Implementing statically typed object-oriented programming languages, ACM Computing Surveys, 43:3, (1-48), Online publication date: 1-Apr-2011.
- Morandat F and Ducournau R Empirical assessment of C++-like implementations for multiple inheritance Proceedings of the Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, (1-5)
- Ducournau R, Morandat F and Privat J (2009). Empirical assessment of object-oriented implementations with multiple inheritance and static typing, ACM SIGPLAN Notices, 44:10, (41-60), Online publication date: 25-Oct-2009.
- Ducournau R, Morandat F and Privat J Empirical assessment of object-oriented implementations with multiple inheritance and static typing Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, (41-60)
- Gil J, Pugh W, Weddell G and Zibin Y (2008). Two-dimensional bidirectional object layout, ACM Transactions on Programming Languages and Systems, 30:5, (1-38), Online publication date: 1-Aug-2008.
- Ducournau R (2008). Perfect hashing as an almost perfect subtype test, ACM Transactions on Programming Languages and Systems, 30:6, (1-56), Online publication date: 1-Oct-2008.
- Rosenmüller M, Siegmund N, Saake G and Apel S Code generation to support static and dynamic composition of software product lines Proceedings of the 7th international conference on Generative programming and component engineering, (3-12)
- Chen J (2007). A typed intermediate language for compiling multiple inheritance, ACM SIGPLAN Notices, 42:1, (25-30), Online publication date: 17-Jan-2007.
- Chen J A typed intermediate language for compiling multiple inheritance Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (25-30)
- Preußer T, Zabel M and Spallek R Enabling constant-time interface method dispatch in embedded Java processors Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems, (196-205)
- Privat J and Ducournau R (2005). Link-time static analysis for efficient separate compilation of object-oriented languages, ACM SIGSOFT Software Engineering Notes, 31:1, (20-27), Online publication date: 1-Jan-2006.
- Privat J and Ducournau R Link-time static analysis for efficient separate compilation of object-oriented languages Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, (20-27)
- Stone C (2004). Extensible objects without labels, ACM Transactions on Programming Languages and Systems, 26:5, (805-835), Online publication date: 1-Sep-2004.
- Sweeney P and Gil J Space and time-efficient memory layout for multiple inheritance Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (256-275)
- Sweeney P and Gil J (1999). Space and time-efficient memory layout for multiple inheritance, ACM SIGPLAN Notices, 34:10, (256-275), Online publication date: 1-Oct-1999.
- Panizzi E and Pastorelli B (1999). On the return types of virtual functions, ACM SIGPLAN Notices, 34:6, (37-42), Online publication date: 1-Jun-1999.
- Kettner L Designing a data structure for polyhedral surfaces Proceedings of the fourteenth annual symposium on Computational geometry, (146-154)
- Chuang T, Kuo Y and Wang C Non-intrusive object introspection in C++ Proceedings of the 20th international conference on Software engineering, (312-321)
- Hamilton J Montana smart pointers Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3, (2-2)
- Wise G (1996). Objective view point: a cornucopia of C++ resources, XRDS: Crossroads, The ACM Magazine for Students, 3:2, (20-23), Online publication date: 1-Nov-1996.
Index Terms
- Inside the C++ object model