Deciphering Object-Oriented Programming with C++
A practical, in-depth guide to implementing object-oriented design principles to create robust code
Dorothy R. Kirk
BIRMINGHAMMUMBAI
Deciphering Object-Oriented Programming with C++
Copyright 2022 Dorothy R. Kirk
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the author, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Associate Group Product Manager: Gebin George
Content Development Editor: Rosal Colaco
Senior Editor: Tiksha Abhimanyu Lad
Technical Editor: Jubit Pincy
Copy Editor: Safis Editing
Project Manager: Prajakta Naik
Proofreader: Safis Editing
Indexer: Manju Arasan
Production Designer: Prashant Ghare
Marketing Coordinator: Sonakshi Bubbar
First published: September 2022
Production reference: 1020922
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80461-390-0
www.packt.com
To my family, especially my two children.
For my oldest, a dedicated and brilliant physicist, astronomer, and astrophysicist.
For my youngest, a superlative writer and advocate for equality and our planet.
May they make our world (and universe) a better place.
Dorothy R. Kirk
Contributors
About the author
Dorothy R. Kirk has specialized in object-oriented (OO) technologies since nearly their inception. She began as an early adopter of C++ at General Electric in research and development (R&D). After working on various projects, she was one of 10 charter members to start GEs Advanced Concepts Center to commercially utilize OO technologies. She later started her own OO training and consulting business, specializing in OOP using C++ and Java. She additionally programs in Python. She has developed and taught many OO courses and has clients spanning industries such as academia, finance, transportation, software, embedded systems, manufacturing, and medical imaging. She has also taught C++ and OO courses at Penn State University.
Ms. Kirk has earned a Bachelor of Science degree in Computer and Information Sciences from the University of Delaware and a Master of Science degree in Computer Science from Temple University.
Ms. Kirk is married and has two grown children; she and her family live on a horse farm in Pennsylvania.
I want to thank those who have consistently supported my endeavors, including my husband, children, parents, sister, extended family, and close friends. I also want to thank the many people at Packt who have contributed to this project, including Tiksha Abhimanyu Lad, Rosal Colaco, and Jubit Pincy, and especially Alok Dhuri and Prajakta Naik, who have worked with me often and tirelessly.
About the reviewers
Vincius G. Mendona is a professor at PUCPR and a mentor at Apple Developer Academy. He has a masters degree in Computer Vision and Image Processing (PUCPR) and a specialization degree in Game Development (Universidade Positivo). He is also one of the authors of the book Learn OpenCV 4 by Building Projects, also by Packt Publishing.
He has been in this field since 1996. His former experience includes designing and programming a multithreaded framework for PBX tests at Siemens, coordination of Aurlio Dictionary software (including its apps for Android, IOS, and Windows phones), and coordination of an augmented reality educational activity for Positivos Mesa Alfabeto, presented at CEBIT. Currently, he works with server-side Node.js at a company called Tenet Tech.
First of all, I would like to thank Thais, my spouse and the love of my life, for being a wonderful partner and for supporting me every day. Id also like to thank my daughters: Mariana, Alice, Laura, Helena, and Renata youre the best, girls! Also, my compliments to my stepson, Bruno, who makes me proud, since he is also becoming a skilled programmer and listens to my technical mumbo jumbo all day. You are my reason to live, and I love you all.
Yacob Cohen-Arazi (Kobi), a husband and father to three kids, is a Principal Software Engineer with over 20 years of experience, currently working at Qualcomm in San Diego, California. He now works on the next generation of 5G cellular and radio access networks, and in his previous roles, he also worked on automotive, machine learning, Wi-Fi, and 4G domains. Kobi is an expert in C++ and enjoys sharing his knowledge with the community. He has led the San Diego C++ Meetup for the past 3 years, where he presents various topics on advanced, modern C++ constructs. In his free time, Kobi likes cycling, swimming, and spending time with his family. He holds a bachelors degree in Computer Science from The Academic College of Tel Aviv-Yaffo.